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"}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM