执行vue -V报错 无法加载 ****\nodejs\vue.ps1 造成
PS C:\WINDOWS\system32> vue -v
vue : 无法加载文件 d:\ProgramFiles\nodejs\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 http://go.microsoft .com/fwlink/?LinkID=135170中的 about_Execution_Policies。
所在位置 行:1 字符: 1 + vue -v+ ~~~ +CategoryInfo : SecurityError: (:) [],PSSecurityException+FullyQualifiedErrorId : UnauthorizedAccess
PS C:\WINDOWS\system32> get-ExecutionPolicy
关于执行策略 - PowerShell | Microsoft Docs
https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2 看这里比较晕。
===
出现这个报错的原因:在电脑上启动 Windows
PowerShell
时,执行策略极大可能是 Restricted(默认设置)。Restricted 策略不允许任何脚本运行,防止执行不信任的脚本。
PowerShell的4中执行策略:
名称 | 说明 |
---|---|
Restricted | 禁止运行任何脚本和配置文件(默认) |
AllSigned | 可以运行脚本,但要求所有脚本和配置文件由可信发布者签名,包括在本地计算机上编写的脚本 |
RemoteSigned | 可运行脚本,但要求从网络上下载的脚本和配置文件由可信发布者签名;不要求对已经运行和本地计算机编写的脚本进行数字签名 |
Unrestricted | 可以运行未签名的脚本 |
解决方法:
1、可以先执行下面命令,可以看到当前默认的执行策略是Restricted
get-ExecutionPolicy
PS E:\PRJs\Web\hanfu-mall> get-ExecutionPolicy
Restricted
PS E:\PRJs\Web\hanfu-mall> set-ExecutionPolicy RemoteSigned
set-ExecutionPolicy : 对注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell”的访问被拒绝。 要更改默认(Loc
alMachine)作用域的执行策略,请使用“以管理员身份运行”选项启动 Windows PowerShell。要更改当前用户的执行策略,请运行"Set-ExecutionPolicy -Scope C urrentUser"。 所在位置 行:1 字符: 1 + set-ExecutionPolicy RemoteSigned+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccessException+FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
PS E:\PRJs\Web\hanfu-mall> vue -v
Usage: vue<command> [options]
2、修改策略为RemoteSigned,执行下面命令并选择Y即可
set-ExecutionPolicy RemoteSigned