PowerShell 执行脚本被禁止问题处理记录
问题现象
执行脚本:
.\loadGAC.ps1
报错信息:
无法加载文件 ...\loadGAC.ps1,因为在当前系统上禁止运行脚本。
PSSecurityException
UnauthorizedAccess
原因分析
Windows PowerShell 的执行策略(Execution Policy)阻止了 .ps1 脚本运行。
当前系统策略禁止执行 PowerShell 脚本,因此脚本在加载时被拦截。
解决方案
方案一:临时允许当前窗口执行(推荐)
以管理员身份打开 PowerShell,执行:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
输入:
Y
然后重新执行脚本:
.\loadGAC.ps1
说明:
- 仅当前 PowerShell 会话有效。
- 关闭窗口后自动恢复原有策略。
方案二:允许当前用户执行本地脚本
管理员 PowerShell 执行:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
确认:
Y
然后执行:
.\loadGAC.ps1
查看策略:
Get-ExecutionPolicy -List
示例输出:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefined
方案三:单次绕过执行
无需修改系统策略:
powershell -ExecutionPolicy Bypass -File .\loadGAC.ps1
或者:
PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Users\Administrator\Downloads\ps2DLC\ps2DLC\loadGAC.ps1"
故障排查
查看当前执行策略:
Get-ExecutionPolicy -List
如果发现:
MachinePolicy
UserPolicy
被设置为非 Undefined,说明可能受到域策略(Group Policy)控制,需要联系系统管理员调整策略。
结论
最安全、最常用的处理方式:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
仅对当前窗口生效,不影响系统整体安全策略。


被折叠的 条评论
为什么被折叠?



