1. 程式人生 > 程式設計 >Python Tricks 使用 pywinrm 遠端控制 Windows 主機的方法

Python Tricks 使用 pywinrm 遠端控制 Windows 主機的方法

啟用 WinRM 遠端服務: winrm quickconfig

檢視 WinRM 服務監聽狀態: winrm e winrm/config/listener

C:\Windows\system32>winrm e winrm/config/listener
Listener [Source="GPO"]
  Address = *
  Transport = HTTP
  Port = 5985
  Hostname
  Enabled = true
  URLPrefix = wsman
  CertificateThumbprint
  ListeningOn = 127.0.0.1,169.254.52.7,xx.xx.xx.xx,::1,fe80::3989:dd91:e6b3:6f41%15,fe80::fd01:a9fd:c410:3407%12

允許使用 Basic 認證方式: winrm set winrm/config/service/auth @{Basic="true"}

winrm set winrm/config/service/auth @{Basic="true"}
Auth
  Basic = true [Source="GPO"]
  Kerberos = true
  Negotiate = true
  Certificate = false
  CredSSP = false
  CbtHardeningLevel = Relaxed

允許 WinRM 使用非加密的連線: winrm set winrm/config/service @{AllowUnencrypted="true"}

方式二:bat 指令碼

call winrm quickconfig -quiet
call winrm set winrm/config/service/auth @{Basic="true"}
call winrm set winrm/config/service @{AllowUnencrypted="true"}

方式三:組策略

定位到 計算機配置 -> 策略 -> 管理模板 -> Windows 元件 -> Windows 遠端管理(WinRM) -> WinRM 服務

啟用 允許通過 WinRM 進行遠端伺服器管理允許基本身份驗證允許未加密通訊

Python Tricks 使用 pywinrm 遠端控制 Windows 主機的方法

建議同時啟用服務與防火牆策略:

計算機配置-> 策略 -> Windows 設定 -> 安全設定 -> 系統服務 -> Windows Remote Management (WS-Management) ,啟動模式為自動。

計算機配置-> 策略 -> Windows 設定 -> 安全設定 -> 高階安全 Windows 防火牆 -> 高階安全 Windows 防火牆 - XXX -> 入站規則 ,開放 5985(HTTP)和 5986(HTTPS)埠。

二、Python 使用 pywinrm 連線 WinRM 服務

安裝 pywinrm 庫: pip install pywinrm

執行 cmd 命令:

>>> import winrm
>>> session = winrm.Session('xx.xx.xx.xx',auth=('Administrator','admin_password'))
>>> cmd = session.run_cmd('ipconfig')
>>> cmd.std_out
b'\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter \xd2\xd4\xcc\xab\xcd\xf8:\r\n\r\n  Connection-specific DNS Suffix . : example.com\r\n  Link-local IPv6 Address . . . . . : fe80::3989:dd91:e6b3:6f41%15\r\n  IPv4 Address. . . . . . . . . . . : xx.xx.xx.xx\r\n  Subnet Mask . . . . . . . . . . . : 255.255.255.0\r\n  Default Gateway . . . . . . . . . : 172.20.23.254\r\n\r\nEthernet adapter \xd2\xd4\xcc\xab\xcd\xf8 2:\r\n\r\n  Media State . . . . . . . . . . . : Media disconnected\r\n  Connection-specific DNS Suffix . : \r\n'

執行 Powershell 命令:

>>> import winrm
>>> session = winrm.Session('xx.xx.xx.xx','admin_password'))
>>> ps = session.run_ps('Get-Disk')
>>> ps.std_out
b'\r\nNumber Friendly Name Serial Number          HealthStatus     OperationalStatus   Total Size Partition \r\n                                                       Style   \r\n------ ------------- -------------          ------------     -----------------   ---------- ----------\r\n0   ST500DM002...       Z3TFS1S3       Healthy       Online         465.76 GB MBR    \r\n\r\n\r\n'

到此這篇關於Python Tricks 使用 pywinrm 遠端控制 Windows 主機的方法的文章就介紹到這了,更多相關Python Tricks遠端控制 Windows 主機內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!