Python Tricks —— 使用 pywinrm 远程控制 Windows 主机 - 简书
由于powershell和CMD运行某些命令不一定兼容,建议使用Powershell来运行,因为python如何使用CMD运行,可能某些程序由于权限问题,可能无法达到预期!!
1、建议使用Powershell来执行windows命令,因为python远程调用CMD可能某些命令因权限问题,无法达到预期结果! 2、比如使用python远程启动逍遥模拟器和ADB连接命令时,总是同时启动后无法正常连接的问题,基于Powershell就可以正常解决!
安装 pywinrm 库:pip install pywinrm
执行 cmd 命令:
>>> import winrm
>>> session = winrm.Session('xx.xx.xx.xx', auth=('Administrator', 'admin_password'))
>>> cmd = session.run_cmd('ipconfig')
>>> cmd.std_out
b'\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter \xd2\xd4\xcc\xab\xcd\xf8:\r\n\r\n Connection-specific DNS Suffix . : example.com\r\n Link-local IPv6 Address . . . . . : fe80::3989:dd91:e6b3:6f41%15\r\n IPv4 Address. . . . . . . . . . . : xx.xx.xx.xx\r\n Subnet Mask . . . . . . . . . . . : 255.255.255.0\r\n Default Gateway . . . . . . . . . : 172.20.23.254\r\n\r\nEthernet adapter \xd2\xd4\xcc\xab\xcd\xf8 2:\r\n\r\n Media State . . . . . . . . . . . : Media disconnected\r\n Connection-specific DNS Suffix . : \r\n'
执行 Powershell 命令:
>>> import winrm
>>> session = winrm.Session('xx.xx.xx.xx', auth=('Administrator', 'admin_password'))
>>> ps = session.run_ps('Get-Disk')
>>> ps.std_out
b'\r\nNumber Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition \r\n Style \r\n------ ------------- ------------- ------------ ----------------- ---------- ----------\r\n0 ST500DM002... Z3TFS1S3 Healthy Online 465.76 GB MBR \r\n\r\n\r\n'