无法加载 yarn.ps1,因为在此系统上禁用了运行脚本

yarn.ps1 无法加载,因为在此系统上禁用了运行脚本

yarn.ps1 cannot be loaded because running scripts is disabled on this system

当执行策略不允许在 Windows 上运行特定脚本时,会出现错误“yarn.ps1 无法加载,因为在此系统上禁用了运行脚本”。

使用Set-ExecutionPolicy -ExecutionPolicy RemoteSigned命令解决错误。

电源外壳
yarn : File C:\Users\bobbyhadz\AppData\Roaming\npm\yarn.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.

以管理员身份打开 PowerShell 并使用
Set-ExecutionPolicy
命令设置其执行策略。

以管理员身份运行 PowerShell:

  1. 单击搜索栏并键入“PowerShell”。
  2. 右键单击“PowerShell”应用程序,然后单击“以管理员身份运行”

以管理员身份运行 powershell

  1. 运行以下命令。
电源外壳
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

powershell 设置执行策略 remotesigned

Set-ExecutionPolicy命令设置 Windows 计算机的 PowerShell 执行策略。

执行RemoteSigned策略是Windows 服务器计算机的默认执行策略。它要求从互联网下载的所有脚本和配置文件均由受信任的发布者签名。

这有效地删除了 的执行策略Restricted,它不允许我们加载配置文件或运行脚本。执行Restricted策略是 Windows 客户端计算机的默认策略。

在运行命令之前,请确保以管理员身份打开 PowerShell Set-ExecutionPolicy

CurrentUser运行带有参数的命令

如果您无法以管理员身份运行该命令,请尝试使用该CurrentUser参数运行它。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

设置执行策略远程签名范围当前用户

RemoteSigned策略仍然阻止我们运行未签名的脚本。

现在,运行
Get-ExecutionPolicy
命令:

Get-ExecutionPolicy

运行获取执行策略命令

Get-ExecutionPolicy命令应显示当前 PowerShell 会话的有效执行策略 ( RemoteSigned)。

如果返回RemoteSigned,则表明您已成功更新权限并且能够运行该yarn命令。

您还可以使用
-List
参数运行该命令,以按优先顺序显示每个作用域的执行策略。

Get-ExecutionPolicy -List

获取执行策略列表命令

当使用-List参数运行时,该命令返回按优先顺序列出的会话的所有执行策略值的列表。

该命令应显示已RemoteSigned为默认范围 ( LocalMachine) 设置策略。

  • 如果出现“’Yarn’ 未被识别为内部或外部命令”的错误,请点击
    以下文章

设置执行策略为Unrestricted

如果别的都不行,你可以尝试将执行策略设置为
Unrestricted,这意味着系统将允许未签名的 PowerShell 脚本运行。

以管理员身份运行 PowerShell:

  1. 单击搜索栏并键入“PowerShell”。
  2. 右键单击“PowerShell”应用程序,然后单击“以管理员身份运行”

以管理员身份运行 powershell

  1. 运行以下命令。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted

设置执行策略不受限制

从 PowerShell 6.0 开始,Unrestricted这是非 Windows 计算机的默认执行策略,无法更改。

运行命令范围为当前用户

或者,您可以运行仅适用于当前用户的命令。

电源外壳
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

如果我运行该Get-ExecutionPolicy -List命令,我可以看到该LocalMachine范围的执行策略现在设置为Unrestricted.

电源外壳
Get-ExecutionPolicy -List

本地机器的执行策略设置为无限制

该策略加载所有配置文件并运行所有脚本。如果您运行从互联网下载的未签名脚本,在运行之前您仍会收到许可提示。

设置你ExecutionPolicyBypass

或者,您可以将您的设置ExecutionPolicyBypass

使用该Bypass策略时,不会阻止任何内容,也不会出现警告或提示。绕过比 更宽松Unrestricted

确保在发出命令之前以管理员身份打开 PowerShell。

电源外壳
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

设置执行策略以绕过

您还可以绕过特定脚本 () 文件的策略.ps1

电源外壳
powershell -ExecutionPolicy Bypass -File "C:\path\to\script.ps1"

绕过特定脚本的策略

可能的执行策略值如下。

姓名 描述
AllSigned 要求所有脚本和配置文件都由受信任的发布者签名。
旁路 没有任何东西被阻止,也没有警告或提示。
默认 设置默认执行策略(Restricted适用于 Windows 客户端)。
远程签名 要求从 Internet 下载的所有脚本和配置文件都由受信任的发布者签名。
不明确的 No execution policy is set for the scope.
Unrestricted The default policy since PowerShell 6.0 for non-Windows computers. The policy loads all configuration files and runs all scripts. If you run an unsigned script, you’re prompted before the script runs.

You can read more about the Set-ExecutionPolicy command and its possible
values and parameters in
this section
of the official docs.

# Additional Resources

If you get an error that yarn is not found or is not recognized, click on the
related article.