我用pywinrm远程windows(AD服务器)时,session返回不一致的结果,如下
import winrm
host = 'XXXX'
domain = 'XXXX'
user = 'XXXX'
password = 'XXXX'
session = winrm.Session(host , auth=('{}@{}'.format(user,domain), password), transport='ntlm',
server_cert_validation='ignore')
ps_script1 = """Get-Acl"""
ps_script2 = """Import-Module ActiveDirectory"""
ps_script3 = """Import-Module ActiveDirectory
Get-ADUser -Filter 'Name -like "XXXX"'......'"""
result1 = session.run_ps(ps_script1)
result2 = session.run_ps(ps_script2)
result3 = session.run_ps(ps_script3)
在 result1 中,它运行良好并返回“正确的结果”。但是在result2中,它的返回是“Error initializing”
同样在 result3 中,它返回 """ 无法联系服务器。这可能是因为此服务器不存在、当前已关闭或没有运行 Active Directory Web 服务。'.Get-ADUser:无法联系服务器。这可能是因为这个服务器 不存在,当前已关闭,或者没有 Active Directory """
但是当我直接登录 Windows 时,所有 powershell 命令都运行良好。
我添加 Credential 并解决这个问题。
ps_script = """[string]$userName = '"""+winuser+"""'
[string]$userPassword = '"""+password+"""'
[SecureString]$secureString = $userPassword | ConvertTo-SecureString -AsPlainText -Force
[PSCredential]$credentialObejct = New-Object System.Management.Automation.PSCredential -ArgumentList $userName, $secureString
[your PS code] -Properties * -credential $credentialObejct)"""
我也在尝试连接 Windows VM(Azure),但出现错误
最大重试次数超过 url:/wsman(由 ConnectTimeoutError(
你在远程机器上配置了什么吗?