在使用 vscode 内置的程序终端时,许多用户可能会遇到“系统禁止脚本运行的错误”。这是由于 powershell 的执行策略设置所导致的。
解决方法:
-
以管理员身份运行 Windows PowerShell,输入以下命令查看当前的执行策略:
Get-ExecutionPolicy
如果输出显示为
Restricted,表示当前策略是禁止运行脚本的。 -
接下来,输入以下命令并按提示操作:
Set-ExecutionPolicy RemoteSigned
系统会提示您输入参数,选择
RemoteSigned并按回车键。随后会出现确认提示:
输入
Y确认更改。
完成以上步骤后,VScode 终端中的脚本运行问题应该得到解决。
Windows PowerShell 执行策略知识点:
PowerShell 的执行策略是一种安全机制,用于防止恶意脚本的自动运行。Windows 家用版默认设置为 Restricted,即禁止运行任何脚本。
要查看系统上的执行策略,可以使用以下命令:
Get-ExecutionPolicy -List
输出结果可能如下:
Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Unrestricted
或者直接使用:
Get-ExecutionPolicy
如果输出为 Restricted,表示系统禁止运行任何脚本。
PowerShell 的执行策略有以下几种:
- AllSigned:要求所有脚本和配置文件均需受信任的发布者签名,包括本地脚本。(安全但麻烦)
- Bypass:不阻止任何脚本运行,无提示和警告。(不安全)
-
Default:桌面 Windows 默认
Restricted,服务器 Windows 默认RemoteSigned。 - RemoteSigned:要求从互联网下载的脚本和配置文件需受信任的发布者签名,本地脚本无此要求。这是 Windows 服务器的默认策略。(较为安全)
- Restricted:禁止加载配置文件或运行脚本。这是桌面 Windows 的默认策略。(安全但无法运行脚本)
-
Undefined:未设置执行策略的范围。如果所有范围均为
Undefined,则有效策略为Restricted。 - Unrestricted:从 PowerShell 6.0 开始,这是非 Windows 系统的默认策略且不可更改。可以加载任何配置文件和运行任何脚本,但会对未签名的网络脚本进行运行前提示。(不安全)
为了在安全与便捷之间取得平衡,建议将执行策略设置为 RemoteSigned。执行以下命令:
Set-ExecutionPolicy RemoteSigned
系统会提示确认更改,输入 Y 即可完成设置。










