一、被远程的机器开启winrm服务
Windows系统需要打开winrm服务,Windows Server系统默认打开
# WinRM服务查看 默认端口5985、5986
PS C:UsersAdministrator> winrm enumerate winrm/config/listener
# 开启远程管理权限 按要求配置(允许更改policy)即可
PS C:UsersAdministrator> winrm quickconfig
# 配置基本验证服务
PS C:UsersAdministrator> winrm set winrm/config/service/auth @{Basic="true"}
若上面不行换这个
PS C:UsersAdministrator> winrm set winrm/config/service/auth '@{Basic="true"}'
# 配置非加密服务
PS C:UsersAdministrator> winrm set winrm/config/service '@{AllowUnencrypted="true"}'
二、Python安装pywinrm
pip install pywinrm
三、Python编写代码
import winrm
if __name__ ==__name__:
#username需要本地用户,域用户可能需要先加到修改策略加到本地用户组中,本人未试过
win = winrm.Session('http://被远程机器IP/wsman',auth= ('username','password'), transport='ntlm')
#run_ps运行PowerShell命令
r = win.run_ps("ipconfig")
#run_cmd运行cmd命令
s = win.run_cmd("ipconfig")
ip = str(r.std_out,encoding='gbk')
IP = str(r.std_out,encoding='gbk')
print(ip)
print(str(r.std_out,encoding='gbk')) # 打印获取到的信息
print(("----------------------------------world line-------------------------------------------"))
print(str(r.std_err,encoding='gbk')) #打印错误信息