PowerShell报“未数字签名”错误是因默认执行策略Restrict阻止脚本运行;推荐用powershell -ExecutionPolicy Bypass -File "路径"临时执行,或运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force永久生效。

你在 Win11 上双击运行一个 .ps1 脚本,或在 PowerShell 窗口中直接输入路径执行时,弹出红色报错:“未对文件 XXX.ps1 进行数字签名。无法在当前系统上运行该脚本”,说明系统执行策略正在拦截——这不是权限不足,也不是文件损坏,而是 PowerShell 默认安全机制主动拒绝未签名脚本加载。
用 Bypass 策略单次运行脚本(推荐临时测试)
方法一:命令行中直接附加策略参数启动
在任意 PowerShell 或 CMD 窗口中,输入完整命令:powershell -ExecutionPolicy Bypass -File "C:path oyourscript.ps1" → 回车执行。
注意路径必须用英文双引号包裹,且不能含中文空格或未转义的特殊字符(如 &、();该命令只影响本次调用,不修改任何系统设置,关掉窗口即失效。
方法二:右键菜单快速调用(需提前注册)
将以下内容保存为 BypassRun.reg 文件,双击导入注册表:
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOTMicrosoft.PowerShellScript.1ShellBypassRunCommand]@="powershell.exe -ExecutionPolicy Bypass -File "%1""
之后对任意 .ps1 文件右键 → 就会出现“以 Bypass 模式运行”选项,点一下即可执行。
重启 PowerShell 并临时禁用策略检查(当前会话有效)
第一步:打开 PowerShell(普通用户权限即可)
第二步:输入命令并回车:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
这一步会立即覆盖当前用户的策略设置,无需确认提示,且不触发 UAC 弹窗。
第三步:验证是否生效 → 输入 Get-ExecutionPolicy -Scope CurrentUser → 输出必须是 【RemoteSigned】 才算成功。
第四步:关闭当前窗口,重新打开 PowerShell,再运行 .\xxx.ps1 即可。
⚠️注意:该设置仅对“当前 Windows 用户”永久生效,但如果你后续在另一台电脑或新用户下运行,仍需重复操作。
进入 WinRE 临时关闭内核级签名验证(极少数情况需要)
当脚本本身依赖未签名驱动、或被 Windows Defender Exploit Guard 深层拦截时,Bypass 和 RemoteSigned 都可能失败——此时需绕过更底层的验证。
第一步:按下 Win + I → 系统 → 恢复 → 高级启动 → 立即重新启动
第二步:设备重启后进入蓝色 WinRE 界面 → 选择“疑难解答” → “高级选项” → “启动设置” → “重启”
第三步:再次重启后屏幕出现编号菜单 → 必须按 F7 键(不是 7 数字键,是功能键 F7)→ 对应“禁用驱动程序强制签名”
第四步:系统进入桌面后,打开 PowerShell,直接运行 .\xxx.ps1 即可。

















