windows 10默认执行策略为restricted,需以管理员身份运行powershell并执行set-executionpolicy remotesigned -scope currentuser才能安全启用本地脚本。

Windows 10默认将PowerShell执行策略设为Restricted,导致你双击.ps1文件或直接输入脚本路径时被静默拦截,连错误提示都可能不完整——这不是脚本写错了,而是系统从启动那一刻就拒绝加载任何.ps1内容。
确认当前执行策略状态
按下 Win + X → 选择 Windows PowerShell(管理员) → 点击“是”通过UAC验证。窗口标题栏必须显示“管理员: Windows PowerShell”,否则后续所有命令无效。
输入以下命令并回车:
get-ExecutionPolicy
若返回 Restricted,说明确为策略拦截;若返回空或报错,则PowerShell未以管理员身份运行,需重开窗口。
临时绕过策略执行单个脚本
方法一:用命令行参数强制绕过(无需改系统设置)
powershell.exe -ExecutionPolicy Bypass -File "C:\MyScript.ps1"
注意:路径含空格时,必须用反引号转义双引号内的整个路径,例如:"`"C:\My Tools\deploy.ps1`"",否则参数截断,脚本根本不启动。
方法二:在已打开的管理员PowerShell中,用Start-Process调起新实例
Start-Process powershell.exe -ArgumentList "-ExecutionPolicy Bypass -File `"$env:USERPROFILE\Desktop\test.ps1`"" -Verb RunAs
持久修改为RemoteSigned(推荐日常使用)
第一步:确保当前是管理员PowerShell(标题栏有“管理员”字样)
第二步:执行策略变更命令
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
第三步:按提示输入 Y 确认
第四步:立即验证是否生效
get-ExecutionPolicy -Scope CurrentUser
返回 RemoteSigned 即成功。此操作仅影响当前用户,不会触发组策略刷新延迟,立即生效,且不降低安全性——它允许你运行本地编写的脚本,同时仍拦截未签名的远程脚本。











