右键“用PowerShell运行”需配置何种Set-ExecutionPolicy?
解决右键“用PowerShell运行”的执行策略提示问题
问题原因
你遇到的提示并非因为LocalMachine的RemoteSigned策略不足,核心原因有两个:
- 部分脚本被系统标记为**“来自互联网”**(哪怕是你从网页下载、邮箱接收的文件),
RemoteSigned策略会阻止这类未签名的远程来源脚本执行,触发提示。 - 右键启动PowerShell时,进程默认以当前用户上下文运行,而你的
CurrentUser范围执行策略为Undefined,系统会尝试临时调整策略适配脚本执行,导致提示弹出。
解决方案
1. 解除单个脚本的互联网标记
如果只是个别脚本触发提示,先检查脚本是否带有来源标记:
Get-Item .\你的脚本名.ps1 | Select-Object Name, @{Name='HasInternetMark'; Expression={Test-Path "$($_.FullName):Zone.Identifier"}}
若输出的HasInternetMark为True,执行以下命令解除标记:
Unblock-File .\你的脚本名.ps1
2. 全局配置当前用户的执行策略
直接为当前用户设置RemoteSigned策略,覆盖Undefined状态,彻底避免右键运行时的策略调整提示:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
-Scope CurrentUser:仅对当前用户生效,不影响系统内其他用户-Force:跳过策略变更的确认步骤
3. 验证配置结果
执行以下命令查看策略列表,确认CurrentUser的执行策略已变为RemoteSigned:
Get-ExecutionPolicy -List
为什么提示时有时无?
当脚本是你本地新建的(无互联网来源标记),RemoteSigned策略允许直接执行,不会触发提示;如果是从外部渠道获取的脚本,系统会自动添加互联网标记,此时RemoteSigned会拦截并弹出提示,因此出现“有时有有时无”的情况。
内容的提问来源于stack exchange,提问作者YorSubs
相关产品推荐
相关产品推荐

