Linux透過計劃任務驅動Windows伺服器
背景
有很多需要Windows上面進行測試的場景
之前只是使用 Windows的計劃任務進行處理
但是跟自己的主控臺不一致.
所以還事項能夠透過Linux的計劃任務進行管理
這樣只有一個控制檯操作簡單很多.
思路
透過 winrm 的python元件進行相關的動作處理
然後使用linux的crontab 計劃任務進行管理處理
坑
有的機器很簡單就可以實現
但是部分機器可能有bug後者是某些安全加固導致
環境總是無法調通
此時可能是玄學, 不一定一定能解決掉.
Linux的處理
python 需要安裝必備的元件
pywinrm
安裝後才能夠進行相關操作
python和pip的安裝之前總結過,
此處不再贅述
Windows的處理
很多都是使用 命令列進行處理
但是我這邊總是報錯.
所以計劃cli和gui 都記錄一下
cli的方式
winrm quickconfig
判斷服務是否正常
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/service @{AllowUnencrypted="true"}
第一個是開啟基本認證.
第二個是允許可以不加密訪問
Windows GUI的處理
命令列輸入:
gpedit.msc
然後依次開啟
計算機設定->管理模板->Windows元件->winrm
手工將 基礎密碼驗證和不加密改為啟用就可以了.
linux命令引數
import winrm
hostip = '10.110.xxx.xx'
username = 'Administrator'
password = 'xxxxxxxx'
session = winrm.Session('http://' + hostip + ':5985/wsman', auth=(username, password))
command = 'c:\somecmmand.cmd'
response = session.run_cmd(command)
print("STDOUT:\n{}".format(response.std_out.decode('gbk')))
print("STDERR:\n{}".format(response.std_err.decode('utf-8')))
呼叫命令
python some.py
就可以連線了.