报错
PS Z:\erp\loda.framework.erp> .\getversionfiles.ps1
.\getversionfiles.ps1 : 无法加载文件 Z:\erp\loda.framework.erp\getversionfiles.ps1。未对文件 Z:\erp\loda.framework.erp\
getversionfiles.ps1 进行数字签名。无法在当前系统上运行该脚本。有关运行脚本和设置执行策略的详细信息,请参阅 https:/go.mi
crosoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ .\getversionfiles.ps1
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
最优解
powershell -ExecutionPolicy Bypass -File .\getversionfiles.ps1
Kimi的专业解答
这个错误提示是因为 PowerShell 的执行策略(Execution Policy)阻止了未签名脚本的运行。Windows 默认的执行策略是 Restricted 或 AllSigned,这会阻止你运行 .ps1 脚本,尤其是没有数字签名的脚本。
解决方法(任选其一):
方法 1:临时绕过执行策略(推荐用于开发/测试)
在 PowerShell 中运行以下命令,仅对当前会话有效,关闭窗口后失效:
powershell -ExecutionPolicy Bypass -File .\getversionfiles.ps1
方法 2:更改当前用户的执行策略(永久生效)
允许当前用户运行本地脚本,不需要签名:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
RemoteSigned:本地脚本无需签名,远程脚本必须签名。- 系统会提示你确认,输入
Y回车即可。
️ 方法 3:更改全局执行策略(不推荐)
如果你确实需要全局更改(对所有用户生效),请以管理员身份运行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
查看当前执行策略
你可以先查看当前的执行策略:
Get-ExecutionPolicy -List
总结
| 方法 | 是否推荐 | 是否永久 |
|---|---|---|
Bypass 临时运行 |
推荐 |
临时 |
RemoteSigned 当前用户 |
推荐 |
永久 |
| 全局更改 | ️ 不推荐 |
永久 |
如果你只是临时运行脚本,方法 1 是最安全快捷的。
如果你经常运行本地脚本,方法 2 更适合你。
临时