Windows 错误: WinRM 客户端认证机制
描述
当您试图使用Windows远程管理 (WinRM) 或PowerShell远程通过未加密的HTTP连接建立远程连接时会出现此错误.默认情况下,Windows安全策略禁止在没有明确的身份验证机制 (如Kerberos,Negotiate或Basic) 的情况下发送身份验证凭证,除非使用数据加密 (HTTPS) 或您的配置明确允许.如果您不指定如何身份验证,WinRM假设您正在使用本地用户凭证,这些凭证是为了安全而在原始HTTP上封锁的.
简单的解决方案
修复1:将远程服务器添加到可信托主机
在本地网络或实验室中,最简单的解决方法是将目标计算机添加到客户机的信任主机列表中. 这告诉您的计算机,目的地可以安全地连接到没有先进身份验证的情况下.
- 按下右键 Start Menu 您的客户端计算机上的按.
- 选择 Terminal (Admin), PowerShell (Admin) 或是 Command Prompt (Admin).
- 运行下列命令允许连接到所有远程计算机:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force(注:您可以替换
with a specific IP address or computer name for better security, for example:设置项目WSMan:\localhost\Client\TrustedHosts - 值为 "192.168.1.50" - 强力) * - 通过执行:
Restart-Service WinRM
修复2:明确定义身份验证机制
如果您在PowerShell中运行脚本或命令,则可以通过明确指定身份验证方法并正确传输凭证来绕过此错误.
- 打开你的 PowerShell 快速执行.
- 使用
-Authentication参数以及-Credential参数在你的指挥. - 输入PSsession的示例:
Enter-PSSession -ComputerName "YOUR_REMOTE_COMPUTER" -Credential (Get-Credential) -Authentication Negotiate - 调用命令的示例:
Invoke-Command -ComputerName "YOUR_REMOTE_COMPUTER" -ScriptBlock { Get-Process } -Credential (Get-Credential) -Authentication CredSSP
修复3:启用客户端端的基本身份验证
如果您的工作流程需要使用本地用户名和密码而无需复杂的目录设置,则必须在 WinRM 客户端配置中明确启用基本身份验证.
- 打开 PowerShell (Admin).
- 运行此命令来检查您的当前配置:
Get-Item WSMan:\localhost\Client\Auth\Basic - 如果值设置为
False,运行这个命令来启用它:Set-Item WSMan:\localhost\Client\Auth\Basic -Value $true - 如果您不使用HTTPS,请确保允许未加密的流量 (仅推用于安全,孤立的本地网络):
Set-Item WSMan:\localhost\Client\AllowUnencrypted -Value $true
修复4:验证远程服务器配置
有时问题在于接收计算机. 确保目标机器实际上正在收听并允许远程配置.
- 登录 Target/Remote computer.
- 打开 PowerShell (Admin).
- 通过运行启用和修复 WinRM 快速配置:
winrm quickconfig - 它们的类型
y然后按下. Enter 确认任何启用服务或开放防火墙异常的提示.
可能有一些错误.. Learn Microsoft