允許儲存在計算機上的指令碼以未簽名方式執行

出於安全原因,預設情況下會將 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