濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例

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

熱門標(biāo)簽:信陽話務(wù)外呼系統(tǒng)怎么收費(fèi) 安徽400電話辦理 電話智能外呼系統(tǒng)誠(chéng)信合作 金融電銷公司怎么辦理外呼系統(tǒng) 什么渠道可以找外呼系統(tǒng)客戶 真人和電話機(jī)器人對(duì)話 湖州電銷防封卡 雷霆電話機(jī)器人電話 使用電話機(jī)器人電銷是否違法

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ù)器本身開啟了運(yùn)行了powershell策略的權(quán)限可能沒有這個(gè)問題):

第二種調(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è)置為原來的默認(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")

您可能感興趣的文章:
  • Python下調(diào)用Linux的Shell命令的方法
  • 利用Python+Java調(diào)用Shell腳本時(shí)的死鎖陷阱詳解
  • 舉例講解Linux系統(tǒng)下Python調(diào)用系統(tǒng)Shell的方法
  • python調(diào)用shell的方法
  • Python調(diào)用shell命令常用方法(4種)

標(biāo)簽:濟(jì)南 德州 山南 鶴崗 湛江 運(yùn)城 六盤水 岳陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例》,本文關(guān)鍵詞  Python,中,調(diào)用,PowerShell,遠(yuǎn)程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    随州市| 准格尔旗| 临汾市| 仙居县| 泰顺县| 孙吴县| 沙雅县| 桂平市| 泊头市| 英山县| 兴仁县| 遵化市| 仪征市| 鲁甸县| 贺兰县| 广元市| 兴和县| 方城县| 华蓥市| 阜新| 鸡泽县| 左云县| 甘肃省| 麟游县| 潮州市| 临武县| 光泽县| 成安县| 鹤山市| 乌拉特中旗| 康保县| 富宁县| 三明市| 宁强县| 卓资县| 上蔡县| 丘北县| 邯郸市| 淮北市| 滨海县| 天门市|