没有.
This error occurs when you attempt to establish a remote Windows PowerShell or WinRM (Windows Remote Management) session using a specific certificate thumbprint for authentication, but your command or configuration fails to explicitly instruct the WinRM client to actually transmit that client certificate.
默认情况下,WinRM需要一个特定的编程标志. WSManFlagUseClientCertificate (或PowerShell cmdlets中的同等参数) 在提供证书指纹时都会被激活.如果没有这个标志,WinRM客户端会检测出一个矛盾:你告诉它. 哪些 但你没有给我证书. 许可证 使用客户端证书身份验证.
逐步修复问题
方法1: 在PowerShell中添加 -Certificate指纹参数
如果您使用 New-PSSession 或是 Enter-PSSession cmdlets,您必须确保您使用正确的参数配置,迫使客户端证书标志被激活.
- Open 作为管理员的PowerShell.
- Modify 您的连接命令包括两个
-CertificateThumbprint并且是-UseSSL参数 - Run 命令使用这个确切的结构:
$thumbprint = "YOUR_CERTIFICATE_THUMBPRINT_HERE" New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint $thumbprint -UseSSL注: 具体说明
-CertificateThumbprint在现代PowerShell版本中本地触发所需的WSMan客户端证书标志.
方法2:仅配置 wsman 会话选项
如果您正在编写使用的脚本 New-WSManSessionOption 您必须明确定义身份验证机制,以便将标志传递给WinRM子系统.
- Open 您的PowerShell脚本或控制台.
- Create 一个指定客户端证书认证的会话选项对象:
$sessionOptions = New-WSManSessionOption -ClientCertificate - Pass 这个选项对象在您的连接命令使用
-SessionOption参数:New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT_HERE" -SessionOption $sessionOptions -UseSSL
方法3:将证书映射到 WinRM 客户端 (本地计算机策略)
如果错误持续存在,本地 WinRM 客户端可能无法配置以允许或正确地映射客户端证书.
- Click 开始菜单,输入
cmd,右键按下 Command Prompt,并选择 Run as administrator. - Enable 在本地 WinRM 配置中通过运行:
winrm set winrm/config/client/auth @{Certificate="true"} - Verify 通过运行进行配置更改:
winrm get winrm/config/client/auth - Ensure 这就是
Certificate = true在输出列表中出现.
方法4:验证可靠的根和客户端证书位置
如果该证书不在正确的个人存储器中或操作系统不信任它,WinRM将无法成功传递证书标志.
- Press
Windows Key + R, 类型certlm.msc,然后按下 Enter 打开本地机器证书管理器. - Navigate 为了
Personal-> 没有.Certificates确保您的客户端证书存在这里,并包含私钥. - Navigate 为了
Trusted Root Certification Authorities-> 没有.Certificates并确保签署客户端证书的根证书在此列出. - Restart 在您的管理员命令提示符中运行这个命令,应用系统更改的WinRM服务:
net stop winrm && net start winrm
可能有一些错误.. Learn Microsoft