中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么遠程控制Windows服務器

發布時間:2022-05-20 09:11:35 來源:億速云 閱讀:182 作者:iii 欄目:開發技術

本篇內容主要講解“Python怎么遠程控制Windows服務器”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python怎么遠程控制Windows服務器”吧!

    在很多企業會使用閑置的 Windows 機器作為臨時服務器,有時候我們想遠程調用里面的程序或查看日志文件

    Windows 內置的服務「 winrm 」可以滿足我們的需求

    它是一種基于標準簡單對象訪問協議( SOAP )的防火墻友好協議,允許來自不同供應商的硬件和操作系統進行互操作

    官網地址

    1. 被控端 windows

    這里以 Windows 10 系統機器為例

    具體操作步驟如下:

    啟動 winrm 服務

    以管理員權限打開 CMD 命令窗口,輸入下面命令啟動 winrm 服務

    # 啟動winrm服務
    winrm quickconfig -q

    如果運行報錯,提示網絡類型設置異常

    Python怎么遠程控制Windows服務器

    可以快捷鍵 win+i 進入到網絡和 Internet,更改網絡配置文件,由公用切換為專用

    Python怎么遠程控制Windows服務器

    檢查 winrm 服務監聽狀態

    繼續在命令行輸入下面命令,查看 winrm 服務的狀態

    PS:注意這里的端口號 Port 值后面連接會用到

    # 查看winrm服務的狀態
    winrm e winrm/config/listener
    
    # 結果
    Listener
        Address = *
        Transport = HTTP
        Port = 5985
        Hostname
        Enabled = true
        URLPrefix = wsman
        CertificateThumbprint
        ListeningOn = **

    查看 winrm 配置信息(可選)

    通過以下命令可以查看 winrm 全部配置信息、client 客戶端配置信息、service 服務端配置信息

    # 全部
    winrm get winrm/config
    
    # Client
    winrm get winrm/config/client
    
    # Service
    winrm get winrm/config/service

    配置 winrm client

    # 配置winrm client
    winrm set winrm/config/client @{AllowUnencrypted="true"}</code>
    <code>winrm set winrm/config/client @{TrustedHosts="*"}</code>
    <code>winrm set winrm/config/client/auth @{Basic="true"}

    配置 winrm service

    在配置完 winrm service 和 winrm client 后,我們通過通過步驟 1-3 查看配置文件,確保配置文件已生效

    # 配置winrm service
    winrm set winrm/config/service @{AllowUnencrypted="true"}
    
    winrm set winrm/config/service/auth @{Basic="true"}

    2. 控制端

    在控制端,比如:Mac OSX、Linux,我們只需要安裝「 pywinrm 」依賴包即可

    # 控制端安裝依賴包
    pip3 install pywinrm

    3. 實戰一下

    做為以上準備后,我們就可以編寫代碼對 Windows 進行控制了

    首先,我們需要 ip 地址、端口號、用戶名、密碼連接 Windows 被控端

    # 連接windows
    import winrm
    
    ...
    # ip地址:端口號
    # winrm server端口號
    # auth:用戶名和密碼
    self.session = winrm.Session("192.168.**.**:5985", auth=('username', 'password'), transport='ntlm')
    ...

    這樣,我們就可以通過對象的「 run_cmd 」和「 run_ps 」函數模擬 CMD、PowerShell 輸入命令了 

    這里以查看 Windows 某個硬盤目錄下的日志文件為例

    # 連接windows
    import winrm
    import codecs
    ...
     def exec_cmd(self, cmd):
            """
            執行cmd命令,獲取返回值
            :param cmd:
            :return:
            """
            # CMD
            result = self.session.run_cmd(cmd)
            # powerShell
            # result = self.session.run_ps(cmd)
            # 返回碼
            # code為0代表調用成功
            code = result.status_code
    
            # 根據返回碼,獲取響應內容(bytes)
            content = result.std_out if code == 0 else result.std_err
    
            # 轉為字符串(嘗試通過UTF8、GBK進行解碼)
            # result = content.decode("utf8")
            # result = codecs.decode(content,'UTF-8')
            try:
                result = content.decode("utf8")
            except:
                result = content.decode("GBK")
    
            print(result)
            return result
    ...
    # 打開文件D:/py/log/trade.log
    # windows使用type命令,查看文件內容
    result = self.exec_cmd('D: &cd py\\log &type trade.log')
    
    # 查看結果
    print(result)

    到此,相信大家對“Python怎么遠程控制Windows服務器”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    连城县| 富裕县| 曲周县| 璧山县| 和硕县| 绥宁县| 巴林左旗| 阿勒泰市| 康马县| 霍州市| 长泰县| 宁晋县| 三明市| 卓尼县| 临猗县| 安丘市| 清原| 丰县| 农安县| 徐汇区| 吉安县| 闽清县| 铜鼓县| 七台河市| 芦溪县| 哈密市| 吉安县| 来安县| 保康县| 白城市| 保德县| 夏河县| 余江县| 延安市| 新蔡县| 佳木斯市| 吴旗县| 岳西县| 张掖市| 松阳县| 和平县|