如何從批處理檔案運行 PowerShell 腳本
-
使用
-File參數從批處理文件運行 PowerShell 腳本 -
使用
RemoteSigned作為-ExecutionPolicy從批處理文件運行 PowerShell 腳本 -
使用
Bypass開關從批處理文件運行 PowerShell 腳本 - 以管理員身份打開 PowerShell 從批處理文件運行 PowerShell 腳本
- 結論
PowerShell 腳本是一個使用 .ps1 擴展名的文本文件,包含一組命令。PowerShell 按順序執行這些命令。
批處理文件是一個使用 .bat 擴展名的文本文件。它同樣包含一組按順序執行的命令。
這些命令可以通過打開 .bat 文件來執行。這個教程將教你如何從批處理文件運行 PowerShell 腳本。
我們創建了一個 PowerShell 腳本,myscript.ps1,包含以下命令。pause 命令會停止批處理文件的執行,直到你按下 Enter 鍵。
Write-Host "Your script is executed successfully."
Pause
使用 -File 參數從批處理文件運行 PowerShell 腳本
從批處理文件運行 PowerShell 腳本是一種在 Windows 環境中自動化任務的有用技術。-File 參數方法允許 PowerShell 腳本無縫集成到批處理文件工作流程中。
以下命令在 bat 文件中用於運行 PowerShell 腳本。
@echo off
powershell -File script.ps1
在這段代碼中,我們首先使用 @echo off 來抑制執行命令的顯示,確保只有腳本的輸出對用戶可見。然後,我們使用 powershell 命令和 -File 參數執行一個名為 script.ps1 的 PowerShell 腳本。
此命令啟動一個 PowerShell 會話並指定要執行的腳本文件。通過結合這些命令,我們可以無縫地從批處理文件中運行 PowerShell 腳本,簡化在批處理文件環境內執行 PowerShell 命令的過程。
輸出:

使用 RemoteSigned 作為 -ExecutionPolicy 從批處理文件運行 PowerShell 腳本
PowerShell 有不同的執行策略,決定哪些腳本可以運行以及從哪裡運行。繞過這些限制的一種方法是指定 -ExecutionPolicy 參數,並設置其值為 RemoteSigned。
此執行策略允許本地創建的腳本運行而不需要數位簽名,而從互聯網下載的腳本必須由受信任的發行者簽名。
@echo off
powershell -ExecutionPolicy RemoteSigned -File script.ps1
在提供的代碼片段中,powershell -ExecutionPolicy RemoteSigned -File script.ps1 被用來執行位於當前工作目錄中的名為 script.ps1 的 PowerShell 腳本。通過將 -ExecutionPolicy 參數設置為 RemoteSigned,我們確保本地創建的腳本可以在不需要數位簽名的情況下被執行,而從互聯網下載的腳本必須由受信任的發行者簽名。
輸出:

使用 Bypass 開關從批處理文件運行 PowerShell 腳本
為了繞過限制並允許腳本在不受執行策略限制的情況下執行,我們可以使用 -ExecutionPolicy 參數並設置其值為 Bypass。這種方法提供了一種簡單的方法來從批處理文件運行 PowerShell 腳本,並繞過任何執行策略限制。
@echo off
powershell -ExecutionPolicy Bypass -File C:\path\script.ps1
在提供的代碼片段中,powershell -ExecutionPolicy Bypass -File C:\path\script.ps1 被用來執行位於 C:\path\scripts 目錄中的名為 script.ps1 的 PowerShell 腳本。通過將執行策略設置為 Bypass,我們指示 PowerShell 忽略任何執行策略限制,因此允許腳本在不受任何阻礙的情況下運行。
輸出:

你還可以運行以下命令。
@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"
在這個提供的命令中,我們利用 -ExecutionPolicy Bypass 指示 PowerShell 忽略任何執行策略限制,從而允許腳本在不受限制的情況下執行。此外,-NoProfile 參數確保不加載用戶的 PowerShell 配置檔,這有助於維持腳本的乾淨執行環境。
輸出:

以管理員身份打開 PowerShell 從批處理文件運行 PowerShell 腳本
以管理員身份打開 PowerShell 從批處理文件運行 PowerShell 腳本是一種重要的方法,適用於需要管理訪問權限的腳本。這種方法確保 PowerShell 會話具備執行管理任務所需的權限,例如修改系統設置或訪問受限制的資源。
@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1'"
在這段代碼中,我們利用 powershell.exe 啟動一個具有提升權限的 PowerShell 會話。Start-Process Cmdlet 中的 -Verb RunAs 參數確保 PowerShell 以管理權限打開。
通過將必要的參數(-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1)傳遞給新的 PowerShell 會話,我們啟用以提升權限執行指定的腳本(script.ps1)。
輸出:

結論
在這篇文章中,我們探討了從批處理文件運行 PowerShell 腳本的各種方法。我們學習了如何使用 -File 參數直接執行腳本,以及如何使用 RemoteSigned 和 Bypass 參數繞過執行策略限制。
此外,我們還討論了如何以管理員身份打開 PowerShell 來運行具有提升權限的腳本。每種方法都提供了一種獨特的方式來從批處理文件執行 PowerShell 腳本,提供靈活性和對執行環境的控制。
