linux連線window cmd

lsj1992g發表於2019-03-14

window 服務需要設定winRM

可以參考:Linux伺服器遠端連線window伺服器並執行cmd命令 執行時候稍微有點錯誤,按下面為準


winRM 使用埠:http 5985 https 5986
1、在Linux伺服器上的處理
  首先需要在Linux中安裝python,並且安裝pywinm庫。安裝之前首先需要安裝isodate和xmlwitch兩個依賴包,再安裝pywinrm。下面是安裝時用到的命令。
 安裝依賴包
  pip install isodate
  pip install xmlwitch
  pip install pywinrm
2、在window伺服器上的操作
   1)、用管理員許可權開啟windows powershell
   2)、首先檢視winrm service的執行狀態,預設情況是沒有開啟的;執行命令為空是沒有啟動。
   winrm enumerate winrm/config/listener

   // 快速在服務端執行winrm  
    winrm quickconfig                   
    // 檢視winrm的執行情況  
    winrm e winrm/config/listener     
    // 檢視winrm的配置。  這個過程中網路不能是公網的,會報錯,根據提示自己搜尋改動一下就好
    winrm get winrm/config 
    // 將service中的allowUnencrypted設定為true,允許未加密的通訊  
    winrm set winrm/config/service '@{AllowUnencrypted="true"}'   
    // 將client中的基本身份驗證設定為true,允許  
    winrm set winrm/config/client/auth '@{Basic="true"}' 
    // 將client中的allowUnencrypted設定為true,允許未加密的通訊  
    winrm set winrm/config/client '@{AllowUnencrypted="true"}' 
    // 設定主機信任的客戶端地址,這裡可以填你所在的客戶端機器的ip或者主機名  
    winrm set winrm/config/client '@{TrustedHosts="127.0.0.1, localhost, 192.168.3.109"}' 
3、下面是 python 執行cmd命令的原始碼
import winrm
win = winrm.Session('http://192.168.3.109:5985/wsman',auth=('think','123456')) # 賬號密碼改成對應的
r = win.run_cmd(
    'C: &'
    'cd C:/Users/think/Desktop &'
    'ls'
)  # 執行cmd命令
print(r.std_out.decode())  # 列印獲取到的資訊
print(r.std_err)  # 列印錯誤資訊

複製程式碼

print('hello 測試結束')

相關文章