python 远程windows系统执行cmd命令

如果你的服务器是windows系统,不想一台一台mstsc远程到桌面上去操作,python是有模块可以远程处理的:winrm

pip install pywinrm 安装模块即可

windows系统服务器需要开启 winrm 服务

具体开启方法:

cmd命令行输入:

# 开启服务
1.winrm quickconfig 会有两次确认 # 查看监听端口等信息 2.winrm e winrm/config/listener # 授权 3.winrm set winrm/config/service/auth @{Basic="true"} # 不加密模式 4.winrm set winrm/config/service @{AllowUnencrypted="true"}

上面的cmd命令可以写成一个.bat文件,在服务器上直接执行即可:

bat命令:

echo y| winrm quickconfig
echo y| winrm quickconfig
winrm e winrm/config/listener
winrm set winrm/config/service/auth @{Basic="true"}
winrm set winrm/config/service @{AllowUnencrypted="true"}

因为有两次手动确认的过程,写了两个echo y|解决。

以上准备工作做好就可以在python里操作了

举个例子:

 1 # -*- coding = utf-8 -*-
 2 # ------------------------------
 3 # @time: 2020/9/1 17:54
 4 # @Author: drew_gg
 5 # @File: mstsc_windows.py
 6 # @Software: api_locust
 7 # ------------------------------
 8 
 9 import winrm
10 
11 con = winrm.Session('http://49.37.168.224:5985/wsman', auth=("administrator", "23423423***"))
12 # 杀掉进程
13 con.run_cmd("taskkill /f /pid 6748") 
“:5985/wsman”每台服务器上应该都是固定相同的。


关于winrm再扩展一些知识:

执行以下命令能够以每组多达50个实例的速度获取实例

winrm set winrm/config @{MaxBatchItems="50"}

通过增大分配的最大封包大小和超时设置,提高性能

winrm set winrm/config @{MaxEnvelopeSizekb="150"}

winrm set winrm/config @{MaxTimeoutms ="60000"}

获取当前winRM配置

winrm g winrm/config

TrustedHosts 是一个数组,用于指定可信的远程计算机的列表;同一工作组中的其他计算机或不同域中的计算机均应添加到此列表中;执行以下命令可将所有计算机都纳入TrustedHosts

winrm s winrm/config/Client @{TrustedHosts="*"}

将客户端计算机设置为使用基本身份验证

winrm s winrm/config/Client/Auth @{Basic="true"}

 

posted @ 2020-09-02 15:53  drewgg  阅读(4993)  评论(0编辑  收藏  举报