PowerShell

PowerShell 更改執行原則,解決無法執行 ps1 指令稿問題

將 PowerShell 預設執行原則從 Restricted 改為 RemoteSigned,解決「系統上已停用指令碼執行」的問題。

問題

在執行 Windows PowerShell 的 .ps1 指令稿時,出現「系統上已停用指令碼執行」的錯誤訊息,該如何解決?

PowerShell 錯誤訊息
. : 因為這個系統上已停用指令碼執行,所以無法載入 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。

以系統管理員身分執行 PowerShell

Step 2
執行以下 PowerShell 指令,將執行原則設定為 RemoteSigned

Set-ExecutionPolicy RemoteSigned
變更執行原則

變更執行原則之後,就可以正常執行自己撰寫的 .ps1 指令稿了。

討論

如果想要查詢目前 PowerShell 的執行原則設定值,可以執行以下 PowerShell 指令:

Get-ExecutionPolicy
RemoteSigned

如果想要將 PowerShell 的執行原則回復成預設的 Restricted,可以執行:

Set-ExecutionPolicy Restricted
Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago