如何修复“在此系统上禁用运行脚本”?

Posted

技术标签:

【中文标题】如何修复“在此系统上禁用运行脚本”?【英文标题】:How to fix "running scripts is disabled on this system"? 【发布时间】:2021-02-14 09:53:36 【问题描述】:

当我尝试在 VS Code 的终端中运行 ionic serve 之类的离子命令时,会出现以下错误。我该如何解决这个问题?

ionic : File C:\Users\Lakshan\AppData\Roaming\npm\ionic.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see 
about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ ~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

【问题讨论】:

【参考方案1】:

我找到了解决此错误的方法。如下,

首先以以管理员身份运行打开powerShell

然后,在 PowerShell 中运行此命令 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

在此之后输入Y 并按回车键。

【讨论】:

“无限制”执行策略通常被认为是有风险的。更好的选择是“远程签名”,它不会阻止在本地创建和存储的脚本,但会阻止从 Internet 下载的脚本运行,除非您专门检查并取消阻止它们。【参考方案2】:

这是因为执行策略。这定义了 powershell 脚本的运行方式。

在默认的 windows 桌面中,它是受限制的,不允许任何脚本(签名或未签名)仅交互式会话。

所以最好使用RemoteSigned(Windows Server 上的默认设置)进行设置,只允许远程签名的脚本和本地未签名的脚本运行,但Unrestriced 不安全,让所有脚本运行。

设置以管理员身份运行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

【讨论】:

【参考方案3】:

要绕过这一点,您需要更改执行策略。 在您的终端中输入此内容。

Set-ExecutionPolicy -Scope CurrentUser

然后它会提示您提供一个值,此时您可以设置 Bypass / RemoteSigned 或 Restricted。

cmdlet Set-ExecutionPolicy at command pipeline position 1
Supply values for the following parameters:
ExecutionPolicy: "RemoteSigned" or "Bypass" or "Restricted".

【讨论】:

以上是关于如何修复“在此系统上禁用运行脚本”?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复drv?

如何修复 npm 审计修复问题?

如何修复WMI

如何修复AppScan漏洞

如何在DOS环境下修复系统

如何修复这些漏洞? (npm audit fix 无法修复这些漏洞)