python winrm 連接windows

最近遇到項目需要使用windows 服務器,之前分開部署,先需求linux連接windows,使用winrm即可

一、配置windows winrm

1.運行如下,如果沒有返回,則沒有開啓winrm

PS C:\Users\Administrator> winrm enumerate winrm/config/listener

2.配置winrm基礎配置

PS C:\Users\Administrator> winrm quickconfig
已在此計算機上運行 WinRM 服務。
WinRM 沒有設置成爲了管理此計算機而允許對其進行遠程訪問。
必須進行以下更改:

在 HTTP://* 上創建 WinRM 偵聽程序接受 WS-Man 對此機器上任意 IP 的請求。
配置 LocalAccountTokenFilterPolicy 以遠程向本地用戶授予管理權限。

執行這些更改嗎[y/n]? y

WinRM 已經進行了更新,以用於遠程管理。

在 HTTP://* 上創建 WinRM 偵聽程序接受 WS-Man 對此機器上任意 IP 的請求。
已配置 LocalAccountTokenFilterPolicy 以遠程向本地用戶授予管理權限。

3. 查看windows的winrm service listener

PS C:\Users\Administrator> winrm e winrm/config/listener
Listener
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 127.0.0.1, 172.18.232.248, ::1, fe80::5efe:172.18.232.248%12, fe80::4963:ce66:e004:e54%17

4.配置winrm auth

PS C:\Users\Administrator> winrm set winrm/config/service/auth '@{Basic="true"}'
Auth
    Basic = true
    Kerberos = true
    Negotiate = true
    Certificate = false
    CredSSP = false
    CbtHardeningLevel = Relaxed

5.配置winrm service 加密方式爲允許非加密

PS C:\Users\Administrator> winrm set winrm/config/service '@{AllowUnencrypted="true"}'
Service
    RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
    MaxConcurrentOperations = 4294967295
    MaxConcurrentOperationsPerUser = 1500
    EnumerationTimeoutms = 240000
    MaxConnections = 300
    MaxPacketRetrievalTimeSeconds = 120
    AllowUnencrypted = true
    Auth
        Basic = true
        Kerberos = true
        Negotiate = true
        Certificate = false
        CredSSP = false
        CbtHardeningLevel = Relaxed
    DefaultPorts
        HTTP = 5985
        HTTPS = 5986
    IPv4Filter = *
    IPv6Filter = *
    EnableCompatibilityHttpListener = false
    EnableCompatibilityHttpsListener = false
    CertificateThumbprint
    AllowRemoteAccess = true

二、在linux連接

1.python 腳

#!/usr/bin/python
import winrm

win2008 = winrm.Session('http://11.22.33.44:5985/wsman',auth=('administrator','xxxx'))

r = win2008.run_cmd('cd .. & dir')
print r.std_out.decode()
print r.std_err

2.運行

# python winP.py 
 Volume in drive C has no label.
 Volume Serial Number is 50E1-E273

 Directory of C:\Users

2018/07/10  10:10    <DIR>          .
2018/07/10  10:10    <DIR>          ..
2018/07/06  08:57    <DIR>          Administrator
2009/07/14  12:57    <DIR>          Public
2018/07/11  18:21    <DIR>          seedeer
               0 File(s)              0 bytes
               5 Dir(s)  252,649,209,856 bytes free


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章