黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

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

系統(tǒng) 2512 0

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è)問題):

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

第二種調(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")


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論