栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

PowerShell和VS Code在执行cnpm时报错

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PowerShell和VS Code在执行cnpm时报错

1.先说解决方案:

1.以 管理员身份 运行PowerShell或VS Code

2.执行 set-ExecutionPolicy RemoteSigned 命令

2.报错原因

PowerShell 执行策略是一项安全功能,用于控制 PowerShell 加载配置文件和运行脚本的条件。 此功能有助于防止恶意脚本的执行。

这些策略的强制仅在 Windows 平台上发生。 PowerShell 执行策略如下所示:

AllSigned
  • 脚本可以运行。
  • 要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。
  • 在从尚未归类为受信任或不受信任的发布者运行脚本之前,将提示您。
  • 运行已签名但恶意脚本的风险。

Bypass
  • 不阻止任何操作,并且没有任何警告或提示。
  • 此执行策略适用于以下配置:将 PowerShell 脚本内置于更大的应用程序或配置,其中 PowerShell 是具有其自己的安全模型的程序的基础。

Default
  • 设置默认的执行策略。
  • Restricted 对于 Windows 客户端。
  • 用于 Windows 服务器的 RemoteSigned 。

RemoteSigned
  • Windows server 计算机的默认执行策略。
  • 脚本可以运行。
  • 要求来自受信任的发布者的脚本和配置文件的数字签名,这些脚本和配置文件是从 internet 下载的,其中包括电子邮件和即时消息程序。
  • 不需要在本地计算机上编写的脚本上的数字签名,也不需要从 internet 下载。
  • 如果未对脚本进行阻止,则运行从 internet 下载的脚本,而不是未签名的脚本,例如通过使用 Unblock-File cmdlet。
  • 从 internet 以外的源运行未签名脚本的风险,以及可能是恶意的签名脚本。

Restricted
  • Windows 客户端计算机的默认执行策略。
  • 允许单独的命令,但不允许脚本。
  • 阻止运行所有脚本文件,包括格式设置和配置文件 (.ps1xml) 、模块脚本文件 (.psm1) 和 PowerShell 配置文件 (.ps1) 。

Undefined
  • 当前作用域中没有设置执行策略。
  • 如果所有作用域中的执行策略都是 Undefined ,则有效的执行策略 Restricted 适用于 Windows 服务器 Windows 客户端和 RemoteSigned 。

Unrestricted
  • 非 Windows 计算机的默认执行策略无法更改。
  • 未签名的脚本可以运行。 存在运行恶意脚本的风险。
  • 在运行不在本地 intranet 区域中的脚本和配置文件之前警告用户。

执行:get-ExecutionPolicy 可查询当前 PowerShell 会话的有效执行策略,显示Restricted,表示状态是禁止的 ,所以执行cnpm会报错。

可用 Set-ExecutionPolicy  命令修改值。

例如 set-ExecutionPolicy RemoteSigned

3.拓展

可以设置仅在特定作用域内有效的执行策略。

有效值为 Scope MachinePolicy 、 UserPolicy、 Process 、 CurrentUser 和 LocalMachine。 设置执行策略时, LocalMachine 为默认值。

这些 Scope 值按优先级顺序列出。 优先级相同的策略在当前会话中有效,即使在优先级较低的情况下设置了限制性更强的策略也是如此。

MachinePolicy

为计算机的所有用户组策略设置。

UserPolicy

为计算机的当前用户组策略设置。

Process

Process 作用域只影响当前 PowerShell 会话。 执行策略保存在环境变量 $env:PSExecutionPolicyPreference 中,而不是保存在注册表中。 关闭 PowerShell 会话后,会删除变量和值。

CurrentUser

执行策略仅影响当前用户。 它存储在 HKEY_CURRENT_USER 注册表子项中。

LocalMachine

执行策略会影响当前计算机上的所有用户。 它存储在 HKEY_LOCAL_MACHINE 注册表子项中。

可通过 Get-ExecutionPolicy -List 命令获取影响当前会话的所有执行策略,并按优先顺序显示

PS E:fskfsk-vue-customerfsk-vue-customer> Get-ExecutionPolicy
RemoteSigned
PS E:fskfsk-vue-customerfsk-vue-customer> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned

可通过 Set-ExecutionPolicy -ExecutionPolicy -Scope   命令设置特定范围中的执行策略。

例如:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

需要注意的是,用于更改执行策略的命令可以成功,但仍不会更改有效的执行策略。

例如,为本地计算机设置执行策略的命令可能会成功,但会被当前用户的执行策略覆盖。

 若要删除特定作用域的执行策略,值设置为 Undefined 。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830041.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号