【问题标题】:How to authenticate to a remote server using a remote server's local user via Powershell WinRM如何通过 Powershell WinRM 使用远程服务器的本地用户对远程服务器进行身份验证
【发布时间】:2017-04-19 19:26:57
【问题描述】:

请考虑以下场景:

有 2 个服务器:server1server2,它们都在同一个网络和同一个域上。目标是使用来自server2 的本地用户作为身份打开从server1server2 的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


【解决方案1】:

你应该可以做这样的事情

$cred = $host.ui.PromptForCredential("local credential", "Enter machine\user ID and password.", "localhost\$env:username", "")
$session = New-PSSession -ComputerName server2 -Credential $cred

因此,首先收集凭据,然后将其插入。而且,您可以将 localhost 用于域端,这样就可以了。为我工作。

> $session
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
1 Session1         server2         Opened        Microsoft.PowerShell     Available

【讨论】:

    猜你喜欢
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2012-08-02
    • 2021-04-26
    • 2018-05-01
    相关资源
    最近更新 更多