📌  相关文章
📜  文件 C:\Users\skill\AppData\Roaming\npm\yarn.ps1 无法加载,因为在此系统上禁用了运行脚本.有关详细信息,请参阅 https:go.microsoft.com fwlink ?LinkID=135170 上的 about_Execution_Policies. - 打字稿(1)

📅  最后修改于: 2023-12-03 14:55:01.977000             🧑  作者: Mango

'文件 C:\Users\skill\AppData\Roaming\npm\yarn.ps1 无法加载,因为在此系统上禁用了运行脚本.有关详细信息,请参阅 https:go.microsoft.com fwlink ?LinkID=135170 上的 about_Execution_Policies. - 打字稿'介绍

这是一个常见的错误信息,当程序员在 Windows 操作系统上运行 PowerShell 脚本时会出现。它的出现通常是因为系统默认限制了运行未签名脚本的权限,以防止恶意软件利用脚本进行攻击。以下是可能导致该错误的原因:

  • 未设置 PowerShell 执行策略
  • 执行策略被管理员禁用
  • 脚本没有签名

为了解决这个问题,可以尝试以下几个步骤:

  1. 以管理员身份打开 PowerShell

首先,你需要以管理员身份打开 PowerShell,因为只有管理员才有权限更改 PowerShell 的执行策略。

  1. 检查 PowerShell 执行策略

运行以下命令,查看当前的执行策略:

Get-ExecutionPolicy

如果运行结果是 Restricted,那么说明当前执行策略禁止了脚本运行。你可以使用以下两个选项:

  • RemoteSigned:允许运行本地和网络签名过的脚本。网络上下载的未签名脚本将无法执行。
  • Unrestricted:允许运行所有脚本,包括未签名的脚本。

在此情况下,你可以使用以下命令将执行策略更改为 RemoteSigned

Set-ExecutionPolicy RemoteSigned

然后,你就可以重新运行你的脚本了。

  1. 签署脚本

如果你需要运行未签名的脚本,那么你可以考虑签署脚本。签署脚本可以使脚本具有数字签名,从而证明脚本的作者是可信的。

要签署脚本,你需要使用以下命令创建一个证书:

New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -Subject "CN=PowerShell Author"

然后,你可以使用以下命令将证书添加到可信证书列表中:

$cert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Subject -eq "CN=PowerShell Author" }
$cert.Thumbprint | ForEach-Object { Set-AuthenticodeSignature -FilePath "C:\path\to\script.ps1" -Certificate (Get-ChildItem -Path CERT:\LocalMachine\My\$_) }

这将为你的脚本添加数字签名,使它可以在受限的执行策略下运行。

总之,当你遇到 “文件 C:\Users\skill\AppData\Roaming\npm\yarn.ps1 无法加载,因为在此系统上禁用了运行脚本.有关详细信息,请参阅 https:go.microsoft.com fwlink ?LinkID=135170 上的 about_Execution_Policies. - 打字稿” 的错误信息时,可以根据以上步骤进行排查和解决。