项目场景
初始化 hexo 博客
问题描述
powershell 运行hexo init <foldername>
报错:无法加载文件C:\Users\username\AppData\Roaming\npm\hexo.ps1
,因为在此系统上禁止运行脚本。
原因分析
PowerShell 执行策略是一项安全功能,用于控制 PowerShell 加载配置文件和运行脚本的条件。 此功能有助于防止恶意脚本的执行。
我们通过Get-ExecutionPolicy -List
获取影响当前会话的所有执行策略,并按优先级顺序显示它们。
如果所有范围内的执行策略均为 Undefined,则对于 Windows 客户端,有效执行策略为 Restricted;
解决方案
更改执行策略:即在特定作用域内设置执行策略
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
执行此策略仅影响当前用户,可解决问题。
其中,RemoteSigned
- Windows 服务器计算机的默认执行策略。
- 脚本可以运行。
- 需要受信任的发布者对从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)的数字签名。
- 在本地计算机上编写且不是从 Internet 下载的脚本不需要数字签名。
- 如果脚本已解除阻止(例如通过使用 Unblock-File cmdlet),则运行从 Internet 下载且未签名的脚本。
- 存在运行来自 Internet 以外来源的未签名脚本以及可能存在恶意的签名脚本的风险。