尝试使用 Ansible 从 Linux Zorin 控制主机连接到 Windows 主机。 在 Windows 机器中安装 winrm 并将所有必需的身份验证方法设置为 True。
Window Host 中 winrm 的配置
PS C:\WINDOWS\system32> winrm get winrm/config
Config
MaxEnvelopeSizekb = 500
MaxTimeoutms = 60000
MaxBatchItems = 32000
MaxProviderRequests = 4294967295
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = true
Auth
Basic = true
Digest = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = false
DefaultPorts
HTTP = 5985
HTTPS = 5986
TrustedHosts
Service
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2039588290-1060779563-2652726705-1011)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
MaxConnections = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = false
Auth
Basic = true
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
CertificateThumbprint
AllowRemoteAccess = true
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 7200000
MaxConcurrentUsers = 2147483647
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 2147483647
MaxMemoryPerShellMB = 2147483647
MaxShellsPerUser = 2147483647
即使设置 Basic = true 后,获取指定的信用信息仍会出现拒绝错误。尝试设置AllowUncrypted = true,但显示以下错误消息:
WSMan故障 信息 提供者故障 WSMan故障 消息 = WinRM 防火墙例外将不起作用,因为该计算机上的网络连接类型之一设置为公共。将网络连接类型更改为域或专用,然后重试。
尝试将网络连接类型更改为专用。并尝试设置AllowUncrypted = true,再次出现与上面相同的错误(WinRM防火墙例外将不起作用,因为该计算机上的网络连接类型之一设置为公共。将网络连接类型更改为域或专用,然后重试。 )
也尝试在 Windows 主机上向端口 5985 添加防火墙例外规则。 也尝试通过 winrm configsddl 默认向用户授予读取和执行权限。虽然没工作。
提供正确的凭据。 ansible的hosts文件如下:
[win]
<IP>
[win:vars]
ansible_user=<username>
ansible_password=<password>
ansible_connection=winrm
ansible_winrm_scheme=http
ansible_winrm_transport=basic
ansible_winrm_port=5985
ansible_winrm_server_cert_validation=ignore
尝试以下 ansible 命令:
ansible win -i hosts -m win_ping
我尝试了在互联网上找到的所有内容,但无法通过 winrm 建立连接。
我将感谢任何提供解决方案的人。 4 天来我一直看着屏幕上的错误,眼睛都红了。
我将 ansible_winrm_transport 从 basic 更改为 ntlm。它解决了我的问题。
为什么?为什么?为什么?我不明白....为什么?为什么?