【博客搭建记录贴】day2_问题记录:hexo : 无法加载文件 C:\Program Files\nodejs\hexo.ps1,因为在此系统上禁止运行脚本。

文章讲述了在安装Hexo博客框架后遇到的脚本禁止运行问题,原因在于PowerShell的执行策略限制。通过了解执行策略、查找原因并将其从Restricted改为RemoteSigned,解决了hexo.ps1脚本的运行问题。
摘要由CSDN通过智能技术生成

1,背景

hexo(博客框架)安装完毕之后,正准备看看其版本,发现出现下面脚本禁止运行的错误。

PS C:\Users\PC> hexo -v
hexo : 无法加载文件 C:\Program Files\nodejs\hexo.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micros
oft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ hexo -v
+ ~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

2,原因

看它的提示中的链接:https:/go.microsoft.com/fwlink/?LinkID=135170

PowerShell 中有执行策略的解释如下:

这边因为有执行策略的限制,导致hexo的脚本(hexo.ps1)执行被禁止
那么目前的本地win10系统的执行策略是什么样子的呢?
以下命令可获取当前系统有效的执行策略:(Restricted的含义可以在上面的链接有,后续也有讲)

PS C:\Users\PC> Get-ExecutionPolicy
Restricted

看一下Restricted的定义,知道会阻止运行所有的脚本文件,所以上面的hexo.ps1脚本文件的运行被禁止了。


知道了目前的执行策略是Restricted,再看一下影响当前会话的所有执行策略,看看是什么导致执行策略变成了Restricted?命令【Get-ExecutionPolicy -List】:

PS C:\Users\PC> Get-ExecutionPolicy -List  #若要获取影响当前会话的所有执行策略,并按优先级顺序显示它们

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

这里发现各个scope上的策略都是Undefined,看一下Undefined的解释知道:因为各个scope上面都是undefined,所以windows客户端来说,默认的有效执行策略变成了【Restricted】

 

3,如何解决?

找到原因之后,怎么解决?
从上面的影响机器的执行策略list,这里看到,所有都是所有范围的策略都是Undefined的话,上面如果是Windows Server的有效执行策略为RemoteSigned(我估计是如果是服务器的话,有更多的脚本执行的需求,所以设置的是比Restricted更宽松一点的RemoteSigned)。

如果将会话的执行策略从Restricted变成RemoteSigned,应该可以执行hexo.ps1。

更改执行策略:windows图标-> 设置 -> 输入开发者,点击【开发者设置】->[应用以下设置以执行Powershell脚本]的地方,点击【应用】->该设置颜色变灰

查看一下最新的执行策略:变成了RemoteSigned

PS C:\Users\PC> Get-ExecutionPolicy
RemoteSigned
PS C:\Users\PC> Get-ExecutionPolicy -List

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

hexo -v就可以正常执行了。

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:根据你提供的引用内容,你遇到了一个问题,即无法加载文件并且系统禁止运行脚本。这个问题可能是由于PowerShell执行策略的限制导致的。引用\[2\]中提到了解决步骤,你可以尝试以管理员身份打开终端,并执行以下命令来修改执行策略:set-ExecutionPolicy RemoteSigned。这样应该可以解决你遇到的问题。引用\[3\]中提到了一个类似的问题,但是在执行set-ExecutionPolicy命令时忘记写RemoteSigned参数,导致出现了其他选项。所以请确保在执行命令时正确地输入参数。希望这些信息对你有帮助。 #### 引用[.reference_title] - *1* [nodemon : 无法加载文件 D:\NodeJs\node_global\nodemon.ps1,因为在此系统禁止运行脚本。有关详细信息,...](https://blog.csdn.net/jiu_mu_mu/article/details/118712332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [VS Code中报错:无法加载文件 D:\nodejs\node_global\hs.ps1。因为在此系统禁止运行脚本...](https://blog.csdn.net/chen__cheng/article/details/116999611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值