|
双击 PowerShell 图标,打开窗口一闪,示找蹦出一行红字:“系统找不到指定的不到办文件。” 我第一次遇到这情况是文件在一台刚重装完系统的笔记本上,桌面上那个蓝色的打开 >_ 图标怎么看都正常,点下去就是示找打不开。后来发现,不到办问题根本不在 PowerShell 本身,文件而是打开它背后指向的那个“快捷方式目标”被改坏了,或者系统里某个关键路径丢了。示找 先说你最可能碰上的不到办那种:快捷方式的目标路径错了。右键 PowerShell 图标 → 属性,文件看“目标”那一栏。打开正常应该是示找 %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe。如果这里变成了别的不到办盘符、别的目录,甚至一片空白,那点下去当然找不到文件。直接把这行路径手动改回来,或者点“查找目标”重新定位到 C:\Windows\System32\WindowsPowerShell\v1.0\ 下的 powershell.exe,确定后就能打开。 还有一种情况更隐蔽:powershell.exe 文件本身还在,但它的依赖项缺了。比如有人清理系统时误删了 System32 下的某些 dll,或者用第三方“优化”工具把 Windows PowerShell 的注册表项搞乱了。这时候你从开始菜单搜 PowerShell,能搜到,但一运行就报“找不到文件”。我见过一台机器,错误信息里甚至带了一个不存在的路径,像 C:\Program Files\WindowsPowerShell\...,可那台电脑根本没装 PowerShell 7,只有系统自带的 5.1。原因就是某个环境变量 PSModulePath 被改成了无效路径,PowerShell 启动时去加载模块,找不到就崩了。解决方法:在系统属性 → 环境变量里,把 PSModulePath 恢复成默认值,通常包含 %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules 这一串。 如果你是从命令行或脚本里调用 powershell,比如在 CMD 里敲 powershell 回车,提示“不是内部或外部命令”或者“找不到文件”,那基本是 PATH 环境变量里少了 %SystemRoot%\System32\WindowsPowerShell\v1.0\。补上这一条,重启 CMD 就行。注意别把路径写错,有人手抖写成 PowerShell 大写 P 加小写 s,Windows 虽然不区分大小写,但路径里多一个空格就完蛋。 另外,32 位和 64 位混装也会出怪事。64 位系统上,System32 里是 64 位 PowerShell,SysWOW64 里是 32 位。如果你从一个 32 位程序里调用 powershell.exe,系统会重定向到 SysWOW64。万一那个目录下的文件被删了,照样报找不到。检查方法:直接去 C:\Windows\SysWOW64\WindowsPowerShell\v1.0\ 看看 powershell.exe 在不在。不在的话,从同版本系统拷贝一个,或者用 sfc /scannow 修复。 说到 sfc /scannow,这招对系统文件丢失挺管用。以管理员身份打开 CMD,敲进去,等它跑完。如果它报告修复了某些文件,重启再试 PowerShell。我遇到过一台电脑,跑完 sfc 后 PowerShell 就能开了,之前怎么改快捷方式都没用。原因是 System32 下的 api-ms-win-core-*.dll 少了一个,PowerShell 加载时找不到依赖。 还有个小概率事件:杀毒软件把 powershell.exe 当病毒隔离了。尤其是一些破解版或老版本杀软,会误判 PowerShell 的某些行为。去杀软隔离区看看,有就恢复并加白名单。别急着关杀软,先确认是不是它干的。 最后提一句,如果你用的是 PowerShell 7(pwsh.exe),路径是 C:\Program Files\PowerShell\7\pwsh.exe。这个和系统自带的 5.1 是两码事。7 的快捷方式坏了,同样按上面的逻辑查目标路径、PATH 和环境变量。别把 5.1 的修复方法直接套上去,目录都不一样。 修好之后,建议把正确的快捷方式固定到任务栏,或者干脆用 Win+X 菜单里的“Windows PowerShell”入口,那个走的是系统内部调用,不容易被快捷方式问题影响。 |