国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從 Python 程序中運(yùn)行 PowerShell 腳本

這篇具有很好參考價(jià)值的文章主要介紹了從 Python 程序中運(yùn)行 PowerShell 腳本。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Windows PowerShell 由數(shù)十個(gè)內(nèi)置 cmdlet 組成,它們提供了豐富的功能集。 其中一些功能是獨(dú)一無二的,只能通過 PowerShell 獲得; 因此,如果我們能夠在 Python 等其他編程語言中使用 PowerShell 腳本,那將非常有用。

本文將重點(diǎn)討論從 Python 代碼執(zhí)行 PowerShell 邏輯。


Python subprocess.Popen()方法

在Python中,可以使用 subprocess.Popen() 方法執(zhí)行外部程序。 subprocess 模塊由幾個(gè)比舊 os 模塊中可用的方法更有效的方法組成; 因此,建議使用 subprocess 模塊而不是 os 模塊。

由于我們將從 Python 程序運(yùn)行 PowerShell 代碼,因此最方便的方法是在 subprocess 模塊中使用 Popen 類。 它創(chuàng)建一個(gè)單獨(dú)的子進(jìn)程來執(zhí)行外部程序。

需要記住的一件事是這個(gè)過程依賴于平臺(tái)。

每當(dāng)您調(diào)用 subprocess.Popen() 時(shí),都會(huì)調(diào)用 Popen 構(gòu)造函數(shù)。 它接受多個(gè)參數(shù),如下所示。

subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)

參數(shù) args 用于傳遞啟動(dòng)外部程序的命令。 有兩種方法可以傳遞命令及其參數(shù)。

  1. 作為參數(shù)序列
Popen(["path_to_external_program_executable", "command_args1", "command_args2", ...])
  1. 作為單個(gè)命令字符串
Popen('path_to_external_program_executable -command_param1 arg1 -command_param2 arg2 ...')

建議使用 Popen 構(gòu)造函數(shù)使用參數(shù)序列。

下一個(gè)重要參數(shù)是 stdout 參數(shù),我們將在下一節(jié)中使用它。 這指定了進(jìn)程應(yīng)使用的標(biāo)準(zhǔn)輸出。


使用 Popen() 方法從 Python 程序中運(yùn)行 PowerShell 腳本

首先,創(chuàng)建一個(gè)打印到控制臺(tái)窗口的簡單 PowerShell 腳本。

Write-Host 'Hello, World!'

我們將其保存為 sayhello.ps1。

接下來,我們將創(chuàng)建一個(gè) Python 腳本 runpsinshell.py。 由于我們將使用 subprocess.Popen() 命令,因此我們必須首先導(dǎo)入 subprocess 模塊。

import subprocess

然后我們將使用 args 和 stdout 參數(shù)調(diào)用 Popen 構(gòu)造函數(shù),如下所示。

p = subprocess.Popen(["powershell.exe", "D:\\codes\\sayhello.ps1"], stdout=sys.stdout)

正如您所看到的,參數(shù)已作為序列傳遞,這是推薦的方式。 第一個(gè)參數(shù)是外部程序可執(zhí)行文件名稱,第二個(gè)參數(shù)是先前創(chuàng)建的 PowerShell 腳本的文件路徑。

另一件要記住的重要事情是我們應(yīng)該將標(biāo)準(zhǔn)輸出參數(shù)指定為 sys.stdout。 要在 Python 程序中使用 sys.stdout,我們還必須導(dǎo)入 sys 模塊。

最終程序應(yīng)如下所示。

import subprocess, sys

p = subprocess.Popen(["powershell.exe", "D:\\codes\\sayhello.ps1"], stdout=sys.stdout)
p.communicate()

最后,我們來運(yùn)行Python程序,如下所示。

python .\runpsinshell.py

輸出:

python執(zhí)行powershell命令,Python 實(shí)用技巧,1024程序員節(jié),python,開發(fā)語言

正如預(yù)期的那樣,PowerShell 腳本已從 Python 代碼執(zhí)行并打印了 Hello, World! 字符串到 PowerShell 窗口。

還可以通過將 Popen 構(gòu)造函數(shù)參數(shù)作為單個(gè)字符串傳遞來編寫 Python 程序。文章來源地址http://www.zghlxwxcb.cn/news/detail-795180.html

import subprocess, sys

p = subprocess.Popen('powershell.exe -ExecutionPolicy RemoteSigned -file 	 "D:\\codes\\sayhello.ps1"', stdout=sys.stdout)

p.communicate()

到了這里,關(guān)于從 Python 程序中運(yùn)行 PowerShell 腳本的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PowerShell:因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本,解決方法

    PowerShell:因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本,解決方法

    運(yùn)行powershell腳本遇見報(bào)錯(cuò): 無法加載文件 C:UsersDHDesktopcsrename.ps1,因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本。有關(guān)詳細(xì)信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 查了查之后發(fā)現(xiàn)是在計(jì)算機(jī)上啟動(dòng) Windows PowerShell 時(shí),執(zhí)行策略很可能是 Restricted(默認(rèn)

    2024年02月07日
    瀏覽(17)
  • 內(nèi)網(wǎng)安全信息收集與并發(fā)編程挑戰(zhàn):深入理解PowerShell腳本執(zhí)行與域環(huán)境控制

    內(nèi)網(wǎng)安全信息收集與并發(fā)編程挑戰(zhàn):深入理解PowerShell腳本執(zhí)行與域環(huán)境控制

    本文詳細(xì)介紹了如何收集內(nèi)網(wǎng)安全信息,以及如何面對并發(fā)編程的挑戰(zhàn)。內(nèi)容涵蓋了判斷域環(huán)境、定位域IP和管理員賬戶、理解域內(nèi)權(quán)限、控制主機(jī)判斷、域滲透思路、本地主機(jī)與域成員主機(jī)的區(qū)別,以及如何使用PowerShell腳本執(zhí)行策略進(jìn)行操作。

    2024年04月11日
    瀏覽(84)
  • yarn : 無法加載文件 C:\Users\***\AppData\Roaming\npm\yarn.ps1,因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本 PowerShell 執(zhí)行策略配置教程 的解決辦法

    yarn : 無法加載文件 C:\Users\***\AppData\Roaming\npm\yarn.ps1,因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本 PowerShell 執(zhí)行策略配置教程 的解決辦法

    關(guān)于這個(gè)問題,博主是在npm打包構(gòu)建轉(zhuǎn)到y(tǒng)arn打包構(gòu)建時(shí)遇到的, 通過yarn打包構(gòu)建項(xiàng)目工程時(shí),失?。骸? yarn : 無法加載文件 C:Users***AppDataRoamingnpmyarn.ps1,因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本 ” 具體信息如下: 如下圖: 關(guān)于這個(gè)問題,PowerShell 腳本的執(zhí)行有著嚴(yán)格的安全策略

    2024年01月16日
    瀏覽(39)
  • PowerShell系列(二):PowerShell和Python之間的差異介紹

    PowerShell系列(二):PowerShell和Python之間的差異介紹

    目錄 1、Python定義 2、Python用途 4、PowerShell用途 5、PowerShell和Python對比 5.1?共同點(diǎn) 5.2?不同點(diǎn) 6、總結(jié) 今天給大家聊聊PowerShell和Python之間有哪些共同之處,各自有哪些優(yōu)勢,希望對運(yùn)維的朋友了解兩種語言能提供一些有用的信息。 Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)

    2024年02月05日
    瀏覽(30)
  • 【Powershell 】(Windows下)常用命令 | 命令別名 | 運(yùn)行Windows命令行工具 | 運(yùn)行用戶程序(vim、gcc、gdb)

    【Powershell 】(Windows下)常用命令 | 命令別名 | 運(yùn)行Windows命令行工具 | 運(yùn)行用戶程序(vim、gcc、gdb)

    微軟官方Powershell文檔:https://learn.microsoft.com/zh-cn/powershell/ 命令詳細(xì)說明,在PDF的最后面: PowerShell 是一種用于自動(dòng)化的 命令行 shell 和 腳本語言 。 Wikipedia 包含以下關(guān)于 shell 的描述: shell 通過提示用戶輸入、解釋其輸入,然后處理基礎(chǔ)操作系統(tǒng)的輸出來管理用戶系統(tǒng)交互(

    2024年02月13日
    瀏覽(22)
  • Powershell / windows終端 無法加載文件 因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本。有關(guān)詳細(xì)信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170

    Powershell / windows終端 無法加載文件 因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本。有關(guān)詳細(xì)信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170

    在 powershell?或者 windows 終端中運(yùn)行腳本文件時(shí),提示“無法加載文件 因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本。有關(guān)詳細(xì)信息,請參閱 https:/go.m icrosoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies?!?PowerShell?或者 windows 終端啟動(dòng)時(shí),為了確保安全,文件的執(zhí)行策略默認(rèn)設(shè)置為 Restric

    2024年02月01日
    瀏覽(59)
  • Powershell腳本自動(dòng)備份dhcp數(shù)據(jù)庫

    Powershell腳本自動(dòng)備份dhcp數(shù)據(jù)庫

    大致列舉幾點(diǎn)進(jìn)行一下說明: 如果DHCP數(shù)據(jù)庫出現(xiàn)問題,如數(shù)據(jù)丟失、損壞或不一致,自動(dòng)備份是恢復(fù)關(guān)鍵網(wǎng)絡(luò)配置信息的關(guān)鍵。 在網(wǎng)絡(luò)故障或DHCP服務(wù)器故障的情況下,自動(dòng)備份還可用于快速重建和恢復(fù)網(wǎng)絡(luò)配置。這有助于減少停機(jī)時(shí)間和業(yè)務(wù)中斷。 定期自動(dòng)備份還允許在

    2024年02月08日
    瀏覽(26)
  • Windows系統(tǒng)powershell運(yùn)行指令常見報(bào)錯(cuò)及處理

    Windows系統(tǒng)powershell運(yùn)行指令常見報(bào)錯(cuò)及處理

    目錄 ? 報(bào)錯(cuò) 報(bào)錯(cuò)1?未修改執(zhí)行策略 報(bào)錯(cuò)2?用戶權(quán)限不夠 報(bào)錯(cuò)3?.ps1使用中文路徑 報(bào)錯(cuò)4 .ps1路徑錯(cuò)誤 powershell運(yùn)行指令,包括在終端直接輸入指令和運(yùn)行.ps1文件,常出現(xiàn)的報(bào)錯(cuò)及處理 如果不修改執(zhí)行策略,將會(huì)報(bào)錯(cuò): .ReplaceShortcuts.ps1 .ReplaceShortcuts.ps1 : 無法加載文件 D:Rep

    2024年02月11日
    瀏覽(26)
  • VMware vCenter服務(wù)器常用的巡檢命令、運(yùn)維命令和PowerShell腳本

    一、前言 最近整理一些VMware vCenter和Esxi常用的巡檢命令和運(yùn)維命令如下: 二、巡檢命令 三、運(yùn)維命令 運(yùn)維常用命令: 四、Powershell腳本 以上就是vCenter和ESXi常用的運(yùn)維與監(jiān)控命令,可以幫助vSphere管理員管理和監(jiān)控環(huán)境。

    2024年02月11日
    瀏覽(22)
  • Win 10以管理員身份運(yùn)行Powershell的3種方法

    Win 10以管理員身份運(yùn)行Powershell的3種方法

    方法一:使用搜索欄。 在任務(wù)欄在搜索框中鍵入?powershell ,右鍵單擊結(jié)果上的?Windows PowerShell,然后選擇\\\"以管理員身份運(yùn)行\(zhòng)\\"。 ? 方法二: 使用運(yùn)行以管理員身份運(yùn)行 PowerShell。 同時(shí)按鍵盤上的 Windows + R 鍵以打開\\\"運(yùn)行\(zhòng)\\"框。鍵入?powershell?并按 Enter 鍵。這將以管理員身份運(yùn)

    2024年02月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包