"连接到远程服务器失败,并显示以下错误消息:WinRM无法处理请求。使用协商身份验证时出现以下错误,错误代码为0x80090304:发生了未知安全错误。"
我尝试远程运行脚本到非域服务器,并且客户端也不属于域,因为我们的环境基于MicroFocus eDirectory。
我在客户端和服务器上配置/尝试了以下内容:
winrm quickconfig
WinRM set winrm/config/client @{TrustedHosts="*"}
Set-item wsman:localhost\client\trustedhosts -value *
同样,没有一台机器是域的一部分,但我认为它可以与trustedhosts一起使用。
尝试进行身份验证的代码如下所示:
[xml]$windows=(Get-Content P:\script\windows.xml)
$windows.servers.host | ForEach-Object {
$password = ConvertTo-SecureString $_.pass -AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "$_.name+$_.user",$password
Invoke-Command -ComputerName $_.name -Credential $credential -ScriptBlock {Get-Culture}
}
答案 0 :(得分:1)
您的问题在于用户名的格式。 " $ .NAME + $ 的.user"因为引号被包裹在两个元素周围,所以将评估为在其中间带有+的字符串。如果源文件没有放置尾随&#39在名称字段上
"$($_.name)$($_.user)"