如何处理 Windows PowerShell 无法执行脚本?

2020-02-04  本文已影响0人  婆娘漂亮生活安逸

这是我 2020 的第一篇文章,在此之前我多说几句,希望早日战“疫”成功,中国加油!大家出门一定要带好口罩,安全第一!!!

1. 什么是PowerShell ?

我简单理解为运行脚本的环境吧。
有兴趣可以看看《Windows PowerShell是啥?
安装过程可以参考《Powershell 安装



2. 问题描述:

在我的项目里我想使用 yarn 命令进行装包,发现竟然出现了以下问题?
一直装包都是这样的呀,咋出现这个问题咧,秉着“遇问题不慌不忙不躲避”原则,我来仔细研究研究讲着啥?



3. 出现原因:

根据报错显示,我们知道这和 Power Shell 的 execute policy 相关,可以参考官方文档《Set-ExecutionPolicy》详细了解。



4. 命令:


1. 查看执行策略:Get-ExecutionPolicy

执行策略 解释
AllSigned 可以执行有数字签名(可信任的出版商)的脚本和配置文件,包括本地脚本。
Bypass 执行脚本无任何阻拦和警告。
Default 默认,windows 客户端为 ‘Restricted’,windows 服务器端为‘RemoteSigned’
RemoteSigned 执行从 Internet 上下载的可信任出版商的脚本和配置文件。是 windows 服务器默认执行策略。
Restricted 不加载配置文件和运行脚本。是window 客户端的默认执行策略。
Undefined 未设置执行策略的范围。
Unrestricted 从PowerShell 6.0 中,这是默认的执行策略。可以加载任何配置文件和脚本。如果加载未受信任的文件,需要允许后才能运行。

很明显,在我的电脑中执行策略为 AllSigned,所以没有办法运行从网络上下载的命令。将其更改为 RemoteSigned。




2. 设置执行策略:Set-ExecutionPolicy RemoteSigned



按理说到这里,应该结束,并且可以运行脚本了,但是根据我的运行结果,我发现这边还是没有修改成功。




3. 查看执行策略列表:Get-ExecutionPolicy -list



发现了,CurrentUser 的执行策略没有修改掉。




4. 具体设置某个scope 的执行策略: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

上一篇下一篇

猜你喜欢

热点阅读