如何远程控制windows执行一个持续运行的进程
一般情况下,对命令的执行是需要返回的,但是在某些情况下,是不需要命令返回,而是需要制造出一个进程,持续跑,例如一个TCP server。
windows有winrm,可以使用python进行连接,从linux和windows都可以操作。
winrm的配置过程简单写一下
1 winrm quickconfig -quiet 2 3 winrm e winrm/config/listener 4 5 6 winrm set winrm/config/service/auth @{Basic="true"} 7 8 9 winrm set winrm/config/service @{AllowUnencrypted="true"}
控制节点安装winrm
1 pip install pywinrm
假如windows节点为192.168.1.1, 用户名和密码是administrator, 1qaz@WSX, 而要执行成程序为test.exe
1 import winrm 2 3 s = winrm.Session('192.168.1.1', ('administrator', '1qaz@WSX')) 4 r = s.run_cmd("powershell Invoke-WmiMethod -Class win32_process -Name create -ArgumentList 'C:\\test.exe'") 5 print r.status_code 6 print r.std_out 7 print r.std_err
即可利用powershell调用WMI接口,创建一个叫test.exe的进程