將 PowerShell 預設執行原則從 Restricted
改為 RemoteSigned
,解決「系統上已停用指令碼執行」的問題。
在執行 Windows PowerShell 的 .ps1
指令稿時,出現「系統上已停用指令碼執行」的錯誤訊息,該如何解決?
. : 因為這個系統上已停用指令碼執行,所以無法載入 C:UsersUSERNAMEDocumentsWindows PowerShellprofile.ps1 檔案。如需詳細資訊,請參閱 about_Execution_Policies,網址為 https:/go.microsoft.com/fwlink/?LinkID=135170。 位於 線路:1 字元:3 + . 'C:UsersUSERNAMEDocumentsWindowsPowerShellprofile.ps1' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
若執行 .ps1
指令稿卻出現這樣的錯誤訊息,表示目前 PowerShell 中的執行原則(Excution Policy)可能被設定為 Restricted
,不允許執行指令稿。
若想要讓 PowerShell 允許執行自己撰寫的 .ps1
指令稿,可依照以下步驟更改執行原則的設定。
Step 1
在 PowerShell 啟動捷徑上按下滑鼠右鍵,選擇以系統管理員身分執行 PowerShell。
Step 2
執行以下 PowerShell 指令,將執行原則設定為 RemoteSigned
:
Set-ExecutionPolicy RemoteSigned
變更執行原則之後,就可以正常執行自己撰寫的 .ps1
指令稿了。
如果想要查詢目前 PowerShell 的執行原則設定值,可以執行以下 PowerShell 指令:
Get-ExecutionPolicy
RemoteSigned
如果想要將 PowerShell 的執行原則回復成預設的 Restricted
,可以執行:
Set-ExecutionPolicy Restricted