使用 Pywinrm 和 ssl 连接

Connecting using Pywinrm with ssl

我遵循了 Matt Wrock 的非常有用的指南:了解 WinRM 连接和身份验证并对其进行故障排除, (http://www.hurryupandwait.io/blog/understanding-and-troubleshooting-winrm-connection-and-authentication-a-thrill-seekers-guide-to-adventure) 并且我能够在我的远程计算机上建立 SSL 连接,我使用以下方法进行了验证:

Test-WSMan -ComputerName "My DNS" -UseSSL

... 返回了一条非错误消息。我也可以从 powershell 连接:

Enter-PSSession -ComputerName "My DNS" -Credential $cred -UseSSL

然而,当我运行以下python代码时:

import winrm

s = winrm.Session('My DNS', auth=('Remote Username', 'Remote Password'), transport='ssl')
r = s.run_cmd('ipconfig', ['/all'])

...我收到以下错误代码: winrm.exceptions.WinRMTransportError:500 个 WinRMTransport。 [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:590)

证书验证失败的错误让我认为我的 SSL 配置不正确;但是,我似乎可以从 Powershell 连接。

任何人都可以告诉我我做错了什么或如何使用 ssl 正确连接吗?

感谢您的宝贵时间

pywinrm 版本存在问题。

使用python版本2.7.10和pywinrm版本(0.1.1)。它工作正常,没有任何错误。

最新版本强制验证 ssl 证书,即使我们在脚本中放置异常处理程序以忽略证书。