python3通过winrm远程执行windows服务器dos命令

您所在的位置:网站首页 windows执行命令代码 python3通过winrm远程执行windows服务器dos命令

python3通过winrm远程执行windows服务器dos命令

#python3通过winrm远程执行windows服务器dos命令| 来源: 网络整理| 查看: 265

Background 在实际项目中,一般使用Linux作为生产服务器,但有时就会出现一些特殊情况,你只能使用windows作为作为服务器,比如说一个用fortran编写的仿真程序,编译环境用的intel的oneAPI,按理说这个编译器是是支持windows、linux和mac平台的,但是不同平台的编译命令还不一样,无法找到相应的编译参数,没办法,只能使用windows作为服务器了。 python3中远程控制库中,像远程控制linux服务器的paramiko,同样也有远程控制windows服务器的pywinrm,可以远程执行 cmd、powerSehll命令。不过,需要在被控端 windows 开启 winrm 服务。 pywinrm官方文档 1、在被控端 windows 开启 winrm 服务

以管理员启动cmd 在这里插入图片描述

启动 winrm 服务

如果遇到网络设置问题如下图1,可以win+i,然后按照下图2进行操作设置。

winrm quickconfig -q

在这里插入图片描述 在这里插入图片描述

查看winrm服务的状态 winrm e winrm/config/listener # 或者 winrm enumerate winrm/config/listener

在这里插入图片描述

为winrm service 配置auth winrm set winrm/config/service/auth '@{Basic="true"}'

在这里插入图片描述

为winrm service 配置加密方式为允许非加密 winrm set winrm/config/service '@{AllowUnencrypted="true"}'

在这里插入图片描述

2、在控制端需要安装pywinrm库 pip3 install pywinrm 3、通过 pywinrm 远程执行 cmd、powerSehll命令 import winrm def win_cmd(cmd: str): """远程调用 windows 执行命令""" hostname = '110.110.110.110' username = 'user1' password = '123456' wintest = winrm.Session('http://' + hostname + ':5985/wsman', auth=(username, password)) res = wintest.run_cmd(cmd) if res.status_code == 0: res = res.std_out.decode().replace('\n', '').replace('\r', '') return { 'sta': 200, 'res': res} else: return { 'sta': 201, 'res': res.std_err} def main(): """主函数""" cmd = 'python3 -V' print(win_cmd(cmd)) if __name__ == '__main__': main()


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3