1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        用 Python 遠(yuǎn)程控制 Windows 服務(wù)器,太好用了!

        共 2504字,需瀏覽 6分鐘

         ·

        2022-06-06 16:19

        在很多企業(yè)會(huì)使用閑置的 Windows?機(jī)器作為臨時(shí)服務(wù)器,有時(shí)候我們想遠(yuǎn)程調(diào)用里面的程序或查看日志文件

        Windows 內(nèi)置的服務(wù)「 winrm 」可以滿足我們的需求

        它是一種基于標(biāo)準(zhǔn)簡單對(duì)象訪問協(xié)議( SOAP )的防火墻友好協(xié)議,允許來自不同供應(yīng)商的硬件和操作系統(tǒng)進(jìn)行互操作

        官網(wǎng):

        https://docs.microsoft.com/en-us/windows/win32/winrm/portal

        1. 被控端 windows

        這里以 Windows 10 系統(tǒng)機(jī)器為例

        具體操作步驟如下:

        1-1?啟動(dòng) winrm 服務(wù)

        以管理員權(quán)限打開 CMD 命令窗口,輸入下面命令啟動(dòng) winrm 服務(wù)

        #?啟動(dòng)winrm服務(wù)
        winrm?quickconfig?-q

        如果運(yùn)行報(bào)錯(cuò),提示網(wǎng)絡(luò)類型設(shè)置異常

        可以快捷鍵 win+i 進(jìn)入到網(wǎng)絡(luò)和 Internet,更改網(wǎng)絡(luò)配置文件,由公用切換為專用

        1-2? 檢查 winrm 服務(wù)監(jiān)聽狀態(tài)

        繼續(xù)在命令行輸入下面命令,查看 winrm 服務(wù)的狀態(tài)

        PS:注意這里的端口號(hào) Port 值后面連接會(huì)用到

        #?查看winrm服務(wù)的狀態(tài)
        winrm?e?winrm/config/listener

        #?結(jié)果
        Listener
        ????Address?=?*
        ????Transport?=?HTTP
        ????Port?=?5985
        ????Hostname
        ????Enabled?=?true
        ????URLPrefix?=?wsman
        ????CertificateThumbprint
        ????ListeningOn?=?**

        1-3 查看 winrm 配置信息(可選)

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

        #?全部
        winrm?get?winrm/config

        #?Client
        winrm?get?winrm/config/client

        #?Service
        winrm?get?winrm/config/service

        1-4? 配置 winrm client

        #?配置winrm?client
        winrm?set?winrm/config/client?@{AllowUnencrypted="true"}

        winrm?set?winrm/config/client?@{TrustedHosts="*"}

        winrm?set?winrm/config/client/auth?@{Basic="true"}

        1-5? 配置 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. 實(shí)戰(zhàn)一下

        做為以上準(zhǔn)備后,我們就可以編寫代碼對(duì) Windows 進(jìn)行控制了

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

        #?連接windows
        import?winrm

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

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

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

        #?連接windows
        import?winrm
        import?codecs
        ...
        ?def?exec_cmd(self,?cmd):
        ????????"""
        ????????執(zhí)行cmd命令,獲取返回值
        ????????:param?cmd:
        ????????:return:
        ????????"""

        ????????#?CMD
        ????????result?=?self.session.run_cmd(cmd)
        ????????#?powerShell
        ????????#?result?=?self.session.run_ps(cmd)
        ????????#?返回碼
        ????????#?code為0代表調(diào)用成功
        ????????code?=?result.status_code

        ????????#?根據(jù)返回碼,獲取響應(yīng)內(nèi)容(bytes)
        ????????content?=?result.std_out?if?code?==?0?else?result.std_err

        ????????#?轉(zhuǎn)為字符串(嘗試通過UTF8、GBK進(jìn)行解碼)
        ????????#?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命令,查看文件內(nèi)容
        result?=?self.exec_cmd('D:?&cd?py\\log?&type?trade.log')

        #?查看結(jié)果
        print(result)
        瀏覽 31
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国模张雪磬 | 成人mv免费观看久久久 | 夜夜躁爽日日 | 日本A片在线观看 | y111111少妇一区二区三区 | 3级片在线 | 日韩精品一区二区三区不卡 | 99久久人妻精品免费二区 | 国产帅裸体男模gay网站视频 | 青娱乐精品视频在线观看 |