cannot be loaded because running scripts is disabled on this system. For more information, see …

  • Post author:
  • Post category:其他


完整的报错描述是这样的:

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  其大概意思就是无法加载*.ps1 文件,因为在此系统上禁止运行脚本。

我是执行ng serve 的时候报这个问题的,当然有可能其他指令也会触发该问题,其根本原因是因为 系统中脚本执行策略是严格模式,权限不够。因此即便是系统中已经安装了npm,cnpm等等,在使用其指令的时候仍然会报错。

解决方式:


1.进入到 Window PoweShell


2.输入  Set-ExecutionPolicy RemoteSigned 回车


3.按Y 然后回车 即可解决问题


归纳一下Policy 的参数:

首先PowerShell执行策略是一个安全功能,用来控制加载配置文件和运行脚本的前提条件,其主要目的就是防止恶意脚本的执行。而这个执行策略我们可以根据自身需要去修改,当我们遇到无法执行的脚本时,就可以通过修改相应的脚本内容,绕过一些策略。

这里面我们将参数设置成 ‘RemoteSigned ‘,意思是远程签名,表明系统认定脚本可以运行,需要Trusted publisher(受信任的发布者)从Internet下载的脚本和配置文件进行数字签名。对于在本地计算机上编写且未从 Internet 下载的脚本,不需要数字签名。

还有一些其他的执行策略


AllSigned:

脚本可以运行,在从尚未分类为受信任或不受信任的发布者运行脚本之前,提示你


Restricted:

允许单个命令,但不允许脚本。


Unrestricted:

可以载入所有配置文件,可以运行所有脚本文件. 如果你运行一个从internet下载并且没有签名的脚本,在运行之前,会被警告。

Bypass:不阻止任何操作,并且没有任何警告或提示。


Undefined:

当前作用域中未设置执行策略。



版权声明:本文为weixin_45889291原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。