允許儲存在計算機上的指令碼以未簽名方式執行
出於安全原因,預設情況下會將 PowerShell 設定為僅允許簽名指令碼執行。執行以下命令將允許你執行未簽名的指令碼(必須以管理員身份執行 PowerShell 才能執行此操作)。
Set-ExecutionPolicy RemoteSigned
執行 PowerShell 指令碼的另一種方法是使用 Bypass
作為 ExecutionPolicy
:
powershell.exe -ExecutionPolicy Bypass -File "c:\MyScript.ps1"
或者從現有的 PowerShell 控制檯或 ISE 會話中執行:
Set-ExecutionPolicy Bypass Process
執行策略的臨時解決方法也可以通過執行 Powershell 可執行檔案並將任何有效策略作為 -ExecutionPolicy
引數傳遞來實現。該策略僅在程序的生命週期內有效,因此不需要對登錄檔的管理訪問許可權。
C:\>powershell -ExecutionPolicy RemoteSigned
還有其他多種政策可供選擇,線上網站通常會鼓勵你使用 Set-ExecutionPolicy Unrestricted
。此策略在更改之前保持不變,並降低系統安全性。這是不可取的。建議使用 RemoteSigned
,因為它允許本地儲存和編寫程式碼,並且需要使用來自受信任根的證書對遠端獲取的程式碼進行簽名。
此外,請注意執行策略可能由組策略強制執行,因此即使策略更改為系統範圍內的 Unrestricted
,組策略也可能會在下一個執行間隔(通常為 15 分鐘)恢復該設定。你可以使用 Get-ExecutionPolicy -List
檢視各種範圍內的執行策略集
TechNet 文件:
Set-ExecutionPolicy
about_Execution_Policies