本文有助于解决无法在仅加入到 Microsoft Entra ID 的计算机之间建立使用 Windows 远程管理(WinRM)的 PowerShell 远程会话的问题。
同一网络上有两台计算机。 它们未加入本地域,并且仅加入没有本地同步的 Microsoft Entra ID。
尝试在两台计算机之间使用 WinRM 建立 PowerShell 远程会话时,会收到以下错误消息:
Enter-PSSession:连接到远程服务器CLIENT01失败,并出现以下错误消息:WinRM 客户端无法处理请求。 如果身份验证方案不同于 Kerberos,或者客户端计算机未加入域,则必须使用 HTTPS 传输,或者必须将目标计算机添加到 TrustedHosts 配置设置。 使用 winrm.cmd 配置 TrustedHosts。 请注意,TrustedHosts 列表中的计算机可能无法进行身份验证。 可以通过运行以下命令获取有关该的详细信息:winrm 帮助配置。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。
Enter-PSSession:连接到远程服务器CLIENT01失败,并出现以下错误消息:WinRM 无法处理请求。 使用协商身份验证时出现以下错误,出现错误代码0x8009030e:指定的登录会话不存在。 该会话可能已被终止。 可能的原因包括: -指定的用户名或密码无效。 -如果未指定身份验证方法且未指定用户名,则使用 Kerberos。 -Kerberos 接受域名,但不接受本地用户名。 -远程计算机名称和端口的服务主体名称(SPN)不存在。 -客户端和远程计算机位于不同的域中,两个域之间没有信任。 检查上述问题后,请尝试以下操作: -检查事件查看器是否存在与身份验证相关的事件。 -更改身份验证方法;将目标计算机添加到 WinRM TrustedHosts 配置设置或使用 HTTPS 传输。 请注意,TrustedHosts 列表中的计算机可能无法进行身份验证。 -有关 WinRM 配置的详细信息,请运行以下命令:winrm 帮助配置。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。
此问题因以下原因之一而发生:
- WinRM 将仅加入的Microsoft计算机视为工作组计算机。 因此,不能使用隐式凭据。
- WinRM 默认服务主体名称 (SPN) 前缀 HTTP 阻止Microsoft Entra 身份验证。
无法使用隐式凭据
若要解决此问题,请按如下所示设置 TrustedHosts 值:
| 值 | 说明 |
|---|---|
* |
此值允许重用所有目标计算机的隐式凭据。 |
*.contoso.com |
此值将凭据的使用限制为特定域的计算机。 |
例如,可以使用下列方法之一将值设置为TrustedHosts``*.contoso.com:
-
PowerShell cmdlet:
set-item WSMan:\localhost\Client\TrustedHosts "*.contoso.com" -
命令提示符:
winrm s winrm/config/client @{TrustedHosts="*.contoso.com"} -
从命令提示符添加注册表项:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Client /v trusted_hosts /t REG_SZ /d "*.contoso.com" /f
默认 SPN 前缀 HTTP 阻止Microsoft Entra 身份验证
若要解决此问题,请运行以下命令将默认 SPN 前缀设置为 HOST :
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Client /v spn_prefix /t REG_SZ /d "HOST" /f
数据收集
如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集信息中的 步骤收集用户体验问题来收集信息。