【发布时间】:2017-04-19 19:26:57
【问题描述】:
请考虑以下场景:
有 2 个服务器:server1 和 server2,它们都在同一个网络和同一个域上。目标是使用来自server2 的本地用户作为身份打开从server1 到server2 的PSSession:
PS @SERVER1 > $session = New-PSSession -ComputerName server2 -Credential server2\username
server2 上的本地用户是 WinRMRemoteWMIUsers_ 组的成员
如果使用域用户,则一切正常:
PS @SERVER1 > $session = New-PSSession -ComputerName server2 -Credential domain\username
尝试以本地用户连接时出现的错误是:
New-PSSession : [server2] 连接到远程服务器 server2 失败并显示以下错误消息:WinRM 无法处理请求。使用 Kerberos 时出现以下错误,错误代码为 0x80090311 身份验证:当前没有可用于服务登录请求的登录服务器。 可能的原因有: - 指定的用户名或密码无效。 -Kerberos 在没有指定身份验证方法和用户名时使用。 -Kerberos 接受域用户名,但不接受本地用户名。 - 远程计算机名称和端口的服务主体名称 (SPN) 不存在。 -客户端和远程计算机在不同的域中,两个域之间没有信任。 检查上述问题后,请尝试以下操作: - 检查事件查看器以获取与身份验证相关的事件。 -改变认证方式;将目标计算机添加到 WinRM TrustedHosts 配置设置或使用 HTTPS 传输。 请注意,TrustedHosts 列表中的计算机可能未经过身份验证。 - 有关 WinRM 配置的更多信息,请运行以下命令:winrm help config。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。从错误消息中有The following error with errorcode 0x80090311 occurred while using Kerberos authentication 和-Kerberos accepts domain user names, but not local user names. 因此,在server1 上执行以下操作后尝试连接:
PS @SERVER1 > winrm set winrm/config/client '@{TrustedHosts="server2"}'
在命令执行后尝试启动PSSession 仍然失败。
还可以尝试哪些其他步骤?
【问题讨论】:
-
而不是
-Credential server2\username尝试-Credential (get-credential)。 -Credential(应该)从不接受 dom\username 或只是用户名,它正在寻找一个 pscredential 对象。 @Roman 本质上是在他的回答中构建一个凭证对象。如果要重用凭据对象,请将其存储在 var$cred = get-credential中,然后将其提供给 cmdlet:-Crendential $credabout Get-Credential
标签: powershell winrm