Ansible-WinRM侦听器设置问题

问题描述

为了将Windows服务器配置为Ansible主机,我尝试通过遵循https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html中提供的官方文档来设置WinRM。

在执行以下命令时,我陷入了“ Setup WinRM Listener”步骤,导致如下所述的错误

PS C:\Users\Administrator> New-WSManInstance -ResourceURI "winrm/config/Listener" -SelectorSet $selector_set -ValueSet $value_set
New-WSManInstance : The WS-Management service cannot find the certificate that was requested.
At line:1 char:1
+ New-WSManInstance -ResourceURI "winrm/config/Listener" -SelectorSet $ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-WSManInstance],InvalidOperationException
    + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.NewWSManInstanceCommand

以下是我的“ selector_set”和“ value_set”的值,这些值也根据文档进行了设置。

PS C:\Users\Administrator> $selector_set

Name                           Value
----                           -----
Transport                      HTTPS
Address                        *


PS C:\Users\Administrator> $value_set

Name                           Value
----                           -----
CertificateThumbprint          E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE

操作系统:Windows Server 2012 R2

解决方法

这可能不是立即显而易见的,但是如果您重新阅读“ Setup WinRM Listener”步骤之前的本节的最后部分(添加了重点):

如果通过HTTPS侦听器运行,这是用于连接的Windows证书存储中的证书的指纹。要获取证书本身的详细信息,请在PowerShell中使用相关的证书指纹运行该命令

$thumbprint = "E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE"
Get-ChildItem -Path cert:\LocalMachine\My -Recurse | Where-Object { $_.Thumbprint -eq $thumbprint } | Select-Object *

这说明E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE只是一个例子-您需要提供颁发给计算机的实际证书的指纹。

要列出使用PowerShell在计算机证书存储中安装的所有现有证书,只需从示例命令中删除Where-Object子句:

Get-ChildItem -Path cert:\LocalMachine\My -Recurse 

如果没有安装适当的证书,则必须安装一个。如果在环境中配置了Active Directory证书服务或类似的PKI,则可以生成自签名证书,从CA供应商获取证书或从内部CA注册一个证书。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...