如何修复“在此系统上禁用运行脚本”?
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".
【讨论】:
以上是关于如何修复“在此系统上禁用运行脚本”?的主要内容,如果未能解决你的问题,请参考以下文章