window 服务需要设置winRM
可以参考:Linux服务器远程连接window服务器并执行cmd命令 运行时候稍微有点错误,按下面为准
winRM 使用端口:http 5985 https 5986
1、在Linux服务器上的处理
首先需要在Linux中安装python,并且安装pywinm库。安装之前首先需要安装isodate和xmlwitch两个依赖包,再安装pywinrm。下面是安装时用到的命令。
 安装依赖包
pip install isodate
pip install xmlwitch
pip install pywinrm
2、在window服务器上的操作
1)、用管理员权限打开windows powershell
2)、首先查看winrm service的运行状态,默认情况是没有开启的;执行命令为空是没有启动。
winrm enumerate winrm/config/listener
// 快速在服务端运行winrm
winrm quickconfig
// 查看winrm的运行情况
winrm e winrm/config/listener
// 查看winrm的配置。 这个过程中网络不能是公网的,会报错,根据提示自己搜索改动一下就好
winrm get winrm/config
// 将service中的allowUnencrypted设置为true,允许未加密的通讯
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
// 将client中的基本身份验证设置为true,允许
winrm set winrm/config/client/auth '@{Basic="true"}'
// 将client中的allowUnencrypted设置为true,允许未加密的通讯
winrm set winrm/config/client '@{AllowUnencrypted="true"}'
// 设置主机信任的客户端地址,这里可以填你所在的客户端机器的ip或者主机名
winrm set winrm/config/client '@{TrustedHosts="127.0.0.1, localhost, 192.168.3.109"}'
3、下面是 python 执行cmd命令的源码
import winrm
win = winrm.Session('http://192.168.3.109:5985/wsman',auth=('think','123456')) # 账号密码改成对应的
r = win.run_cmd(
'C: &'
'cd C:/Users/think/Desktop &'
'ls'
) # 执行cmd命令
print(r.std_out.decode()) # 打印获取到的信息
print(r.std_err) # 打印错误信息
复制代码
print('hello 测试结束')