升级PowerShell至7版本后右键“用PowerShell运行”脚本无响应的解决方法
嗨,我之前也碰到过一模一样的问题,大概率是升级PowerShell 7后,右键菜单里的“用PowerShell运行”关联出了岔子——要么是默认指向旧版PS5.1但关联损坏,要么是没切换到PS7的执行程序。给你几个实用的解决步骤,按顺序试试:
第一步:先确认执行策略没问题
虽然你手动粘贴脚本能运行,但右键调用的环境权限可能不一样。打开PowerShell 7(一定要用管理员身份),运行这条命令:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
这条命令是允许当前用户运行本地脚本,避免因为权限问题导致的静默失败。第二步:重置右键菜单关联到PowerShell 7
很多时候升级后,右键菜单还是默认调用旧版PS5.1,我们手动把它改成PS7的路径。同样在管理员模式的PowerShell 7里运行:$regPath = "HKCR:\Microsoft.PowerShellScript.1\Shell\0\Command" Set-ItemProperty -Path $regPath -Name "(Default)" -Value '"C:\Program Files\PowerShell\7\pwsh.exe" "-Command" "& ""%1"""'注意:如果你的PowerShell 7安装在其他路径(比如
C:\Program Files (x86)\PowerShell\7),记得把命令里的路径改成你实际的安装路径。第三步:用CMD修复文件关联
如果上面的方法没效果,打开管理员模式的命令提示符(CMD),依次运行这两条命令:assoc .ps1=Microsoft.PowerShellScript.1 ftype Microsoft.PowerShellScript.1="C:\Program Files\PowerShell\7\pwsh.exe" "%1"这两条命令会重新绑定
.ps1文件到PowerShell 7的执行程序。额外排查:检查脚本开头的版本要求
如果你脚本开头写了#Requires -Version 7,那用PS5.1运行的话会直接退出,看起来就像“没反应”。这种情况只要把右键关联改成PS7就解决了,也就是上面第二步的操作。
试完这些步骤后,右键点击脚本选“用PowerShell运行”应该就能正常执行了。
备注:内容来源于stack exchange,提问作者pwright2




