0

如果启用了 CredSSP,我在尝试检查远程计算机列表时遇到问题。当我的脚本连接到机器并执行命令时。它最终返回错误。如果我通过 RDP 连接到同一台机器并执行相同的命令,它将返回 true。这是我的脚本:

foreach ($server in $servers.Split(",").Trim()) {
   $pw = ConvertTo-SecureString 'password' -AsPlainText -Force
   $cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentList "Domain\user", $pw
   $session = New-PSSession -ComputerName $server -Credential $cred

   $output = (Get-Item  WSMan:\localhost\Service\Auth\CredSSP).value

   Write-Host $server : $output

   Remove-PSSession -Session $session
}

有没有人对此有见识?

4

1 回答 1

1

你不是在Get-Item远程运行。

尝试:

$ServerList = $servers.Split(",").Trim();
$pw = ConvertTo-SecureString 'password' -AsPlainText -Force;
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentList "Domain\user", $pw;

Invoke-Command -ComputerName $ServerList -Credential $cred -ScriptBlock { Get-Item  WSMan:\localhost\Service\Auth\CredSSP; } |
    Select-Object PSComputerName, Value;

您可以使用Invoke-Command -Session $sessioninstead Invoke-Command -ComputerName $ServerList,但无需进行循环并手动创建和删除会话。

于 2016-08-04T20:19:37.097 回答