麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > PowerShell > 正文

Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例

2020-03-26 19:12:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

python調(diào)用本地powershell方法

1、現(xiàn)在準(zhǔn)備一個(gè)簡(jiǎn)陋的powershell腳本,功能是測(cè)試一個(gè)IP列表哪些可以ping通:

 

復(fù)制代碼 代碼如下:

function test_ping($iplist)
{
    foreach ($myip in $iplist)
    {
        $strQuery = "select * from win32_pingstatus where address = '$myip'"
        # 利用 Get-WmiObject 送出 ping 的查詢
        $wmi = Get-WmiObject -query $strQuery
        if ($wmi.statuscode -eq 0)
        {
            return "Pinging`t$myip...`tsuccessful"
        }
        else
        {
            return "Pinging`t$myip...`tErrorCode:" + $wmi.statuscode
        }
    }
}

 

test_ping args[0]

 

python簡(jiǎn)陋的調(diào)用方法:

 

復(fù)制代碼 代碼如下:

# -*- coding: utf-8 -*-
import subprocess
 
def python_call_powershell(ip):
    try:
        args=[r"powershell",r"D:/jzhou/test_ping.ps1",ip]  #args參數(shù)里的ip是對(duì)應(yīng)調(diào)用powershell里的動(dòng)態(tài)參數(shù)args[0],類似python中的sys.argv[1]
        p=subprocess.Popen(args, stdout=subprocess.PIPE)
        dt=p.stdout.read()
        return dt
    except Exception,e:
        print e
    return False

 

if __name__=="__main__":
    ip=["1.1.1.1","2.2.2.2","3.3.3.3"]
    print python_call_powershell(ip)

 

可能會(huì)報(bào)下面的錯(cuò)誤(如果服務(wù)器本身開(kāi)啟了運(yùn)行了powershell策略的權(quán)限可能沒(méi)有這個(gè)問(wèn)題):

 

Python,調(diào)用PowerShell,遠(yuǎn)程執(zhí)行bat文件

 

第二種調(diào)用方法可以解決這個(gè)方法

 

2、調(diào)用時(shí)設(shè)置powershell執(zhí)行策略,這種方法一旦將策略設(shè)置好后,后面就通用了,如果需要的話再在powershell腳本最后加上已經(jīng)將策略改回去

 

 

復(fù)制代碼 代碼如下:

def python_call_powershell(ip):
    try:
        args=[r"C:/WINDOWS/system32/WindowsPowerShell/v1.0/powershell.exe","-ExecutionPolicy","Unrestricted", r"D:/jzhou/test_ping.ps1",ip]
        p=subprocess.Popen(args, stdout=subprocess.PIPE)
        dt=p.stdout.read()
        return dt
    except Exception,e:
        print e
    return False

 

 

3、還有一點(diǎn)需要注意的是powershell腳本里最后必須要調(diào)用一下自己的函數(shù),并且函數(shù)要有返回值,以便python能接收powershell腳本返回的結(jié)果,同時(shí)powershell腳本調(diào)用函數(shù)傳參的方式是args[0],args[1]等等,然后在python里的args里傳入對(duì)應(yīng)的參數(shù)。

 

如果需要將策略設(shè)置為原來(lái)的默認(rèn)狀態(tài),在powershell腳本最后加上:Set-ExecutionPolicy Restricted

 

python遠(yuǎn)程調(diào)用bat執(zhí)行命令

 

1、首先安裝python的wmi包
2、遠(yuǎn)程調(diào)用bat如下:

 

復(fù)制代碼 代碼如下:

# -*- coding: utf-8 -*-
import wmi,json
import time

 

logfile = 'logs_%s.txt' % time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime())

#遠(yuǎn)程執(zhí)行bat文件
def call_remote_bat(ipaddress,username,password):
    try:
        #用wmi連接到遠(yuǎn)程服務(wù)器
        conn = wmi.WMI(computer=ipaddress, user=username, password=password)
        filename=r"D:/apps/autorun.bat"   #此文件在遠(yuǎn)程服務(wù)器上
        cmd_callbat=r"cmd /c call %s"%filename
        conn.Win32_Process.Create(CommandLine=cmd_callbat)  #執(zhí)行bat文件
        print "執(zhí)行成功!"
        return True
    except Exception,e:
        log = open(logfile, 'a')
        log.write(('%s, call bat Failed!/r/n') % ipaddress)
        log.close()
        return False
    return False

if __name__=='__main__':
    call_remote_bat(computer="192.168.1.2", user="testuser", password="testpwd")

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品超碰 | 成人爽a毛片免费啪啪红桃视频 | 中国av免费在线观看 | 国产成人自拍视频在线观看 | 青青草好吊色 | 国产系列 视频二区 | 久久污| 成人免费观看av | 亚洲婷婷日日综合婷婷噜噜噜 | 日韩精品无码一区二区三区 | 久久精品国产99久久6动漫亮点 | 成人在线不卡 | 女人叉开腿让男人桶 | 线观看免费完整aaa 久久不雅视频 | 成人网在线观看 | 综合网日日天干夜夜久久 | 成人nv在线观看 | 国产精品一区二区三区在线看 | 亚洲精品成人久久久 | 精品影视一区二区 | 伊人成人免费视频 | av在线大全 | 超碰一区| 情侣啪啪网站 | 一级免费在线 | 国产成人在线免费视频 | 国产中文一区 | 2级毛片| 中国洗澡偷拍在线播放 | 欧美一级特黄特色大片免费 | 久久色播| 一区国产精品 | 国色天香综合网 | 免费国产视频大全入口 | 久久久久久久久久久久久国产精品 | 成人午夜在线免费 | 国产精品久久在线观看 | 中文字幕一区二区三区久久 | 91网站链接 | 中文字幕国产欧美 | 免费a视频在线观看 |