python 遠端windows系統執行cmd命令
阿新 • • 發佈:2020-09-02
如果你的伺服器是windows系統,不想一臺一臺mstsc遠端到桌面上去操作,python是有模組可以遠端處理的:winrm
pipinstallpywinrm安裝模組即可
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: matsc_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"}