PowerShell 有一個執行策略,作為一種安全措施來規範加載配置文件和運行腳本的條件。這有助於防止執行惡意腳本。執行策略決定您是否可以加載配置文件,例如您的 PowerShell 配置文件。如果腳本在運行前需要進行數字簽名。您可以為本地計算機系統、當前用戶或 Windows PC 上的特定會話設置執行策略。
目錄
那麼,當您嘗試運行一個PowerShell 上的腳本?
當您嘗試在 PowerShell 上運行腳本時,當前設置的執行策略將決定腳本是否可以運行。如果腳本滿足當前執行策略的要求,它就會執行。如果不符合當前執行策略的需要,將顯示錯誤消息,指出運行腳本在此系統上禁用。
例如,如果您當前的執行策略只允許運行已簽名的腳本,而您嘗試運行未簽名的腳本,您將收到一條錯誤消息,指出正在運行的腳本在此系統上仍處於“禁用”狀態。
因此,如果您希望在 Windows 11 上運行腳本,則需要設置不同的執行策略。您可以設置多種執行策略來運行腳本。讓我們了解有關執行策略的更多信息,以便您了解要更改為哪一個。
另請閱讀-Windows 11 中備份和還原快速設置的步驟
什麼是執行策略及其數量?
PowerShell 中的執行策略決定您是否可以加載配置文件或運行腳本,以及腳本在運行前是否必須進行數字簽名。 Set-ExecutionPolicy cmdlet 的默認範圍是 LocalMachine,它會影響使用計算機的每個人。
請務必注意,執行策略不是安全措施。它們可以很容易地被繞過,並且更像是主要規則,以防止您無意中違反政策。換句話說,執行策略可幫助您避免運行可能會在您不知情的情況下損害您的系統的腳本或配置。
假設您有一個名為“myscript.ps1”的腳本要運行在你的電腦。如果您的執行策略指定為受限(默認),您將根本無法運行該腳本。
如果您的執行策略指定為 AllSigned,您將只能運行該腳本如果由受信任的發布者簽名。
另請閱讀-如何查看 Windows 11 時鐘的秒數
PowerShell 有六種執行策略,讓我們逐一討論,以便您獲得更好地理解每種類型。
1. Restricted Policy
所有 Windows 11 PC 通常都分配 Restricted 策略,這是最嚴格的策略。不允許運行 PowerShell 腳本、配置文件或模塊腳本文件,因此只能執行單個命令。
2.不受限制的策略
默認情況下,未簽名的腳本可以在非 Windows 計算機上運行,並且無法修改此策略。結果可能會運行危險的腳本。在執行不屬於本地網絡區域的腳本和配置文件之前,用戶會收到預先警告。
另請閱讀-如何在 Windows 11 中查看可用還原點列表
3. AllSigned 策略
只有經過簽名的 PowerShell 腳本才能在 All Signed 執行策略下執行。這包括您創建的任何獨特腳本。如果未分類,您可以選擇是否信任或不信任腳本的發布者。
4. Remote Signed Policy
由於默認執行策略,腳本可以在 Windows 服務器系統上運行。通過 Web 獲取的腳本和配置文件需要具有可信賴的發布者的數字簽名。對於不是從 Internet 下載的本地創建的腳本,不需要數字簽名。如果使用“Unblock-File cmdlet”解鎖,從互聯網獲取但未簽名的腳本仍然可以執行。從 Internet 以外的來源運行有害的已簽名和未簽名腳本是與此策略相關的風險。
另請閱讀-您現在可以在 Apple Silicon Mac 上運行 Windows 11
5. Undefined Policy
如果當前作用域沒有指定執行策略。並且所有範圍內的執行策略都是未定義的。那麼有效的執行策略將限制 Windows 客戶端和 RemoteSigned for Windows Server。這意味著如果沒有設置特定的執行策略,Windows 客戶端將默認使用最嚴格的策略,而 Windows Server 將默認使用限制較少的策略,該策略仍然需要從 Internet 下載的腳本由受信任的發布者簽名。
6.繞過策略
它允許所有腳本在沒有任何警告或提示的情況下運行。這種類型的策略旨在在腳本是較大應用程序的一部分的特定場景中受益。或者 PowerShell 本身用作程序的基礎以及適當的安全措施。
此外,為了控制哪些腳本允許在您的系統上運行,可以在各種範圍內建立執行策略。 MachinePolicy、UserPolicy、Process、CurrentUser 和 LocalMachine 是可用的範圍。
MachinePolicy:此範圍由計算機的所有用戶的組策略定義。UserPolicy:此範圍描述了 PC 當前用戶的組策略。進程:此範圍僅影響當前的 PowerShell 進程。CurrentUser:此範圍僅影響當前用戶計算機。LocalMachine:此範圍影響計算機的所有用戶。 (分配執行策略時默認設置)
您可以在使用帶有 Set-ExecutionPolicy cmdlet 的-Scope 參數設置執行策略時指定範圍。例如,要僅為當前用戶設置執行策略,您可以使用:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned
現在您了解執行策略和特定範圍的所有信息。讓我們繼續討論如何在 Windows 11 中更改 PowerShell 腳本執行策略
另請閱讀-如何在 Windows 11 中下載所有語言的字體
在 Windows 11 中更改 PowerShell 腳本執行策略Windows 11
按照下面給出的步驟更改執行策略:
注意:如果您有 Windows Vista 或更多新版本,請使用以下命令啟動 PowerShell Run as administrator option for administrator privileges to run commands.
Windows PowerShell-Run as Administrator
第 1 步:檢查您當前的執行策略
為此,記下以下命令並點擊輸入
Get-ExecutionPolicy
設置執行策略
第二步:更改執行策略
要更改策略,請記下以下命令,然後按回車鍵。
Set-Executi onPolicy RemoteSigned
RemoteSigned Policy
如上圖所示,您將獲得執行政策變更在您按下回車鍵後通知。
現在您已成功遵循該程序。再次重複該腳本,它將開始在您的 Windows 11 上運行。
對於特定範圍:
如果您想將其設置為特定範圍,您可以使用以下命令並按回車鍵:
Set-ExecutionPolicy-ExecutionPolicy
刪除執行策略
刪除為特定範圍設置的執行策略。您可以使用帶有-Scope 參數 的Set-ExecutionPolicy cmdlet 並指定未定義 作為執行策略。這將刪除為指定範圍設置的任何執行策略。
例如,要刪除所有本地計算機用戶的執行策略,您可以鍵入如下命令:
Set-ExecutionPolicy-ExecutionPolicy Undefined-Scope LocalMachine
請記住,當您更改 LocalMachine 或 CurrentUser 範圍的執行策略時。更改仍存儲在註冊表中並一直有效,直到您再次更改它。但是,如果您為 Process 範圍設置執行策略。因此,它不會保存在註冊表中,只會持續到當前進程和所有子進程關閉為止。
另請閱讀如何在 Windows 11 中啟用或禁用更改桌面背景