我最近遇到了一个问题,Powershell(仅限 Powershell)拒绝运行某些文件。在 Powershell 之外,例如在 explorer 或 cmd 中,一切正常。
但在 Powershell(版本 7.0.3)中,某些.lnk
文件(我做我的$env:PATHEXT
)出现错误并失败ResourceUnavailable: Program '[name]' failed to run.
,并且某些(不相关的).exe
文件似乎根本不存在 - 其他文件可能也是这种情况,但我还没有注意到。
无论我是否提供相关文件的完整路径,也不管它们当前是否在我的$env:Path
.
.exe
以下是受影响文件之一在 cmd 中的比较结果
D:\>C:\Windows\system32\wsl.exe --list
Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)
D:\>pwsh -c "C:\Windows\system32\wsl.exe --list"
C:\Windows\system32\wsl.exe: The term 'C:\Windows\system32\wsl.exe' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
.lnk
以下是受影响的文件之一
D:\>gimp.lnk --license && echo Runs fine!
Runs fine!
D:\>pwsh -c "gimp.lnk --license && 'Runs fine!'"
ResourceUnavailable: Program 'Gimp.lnk' failed to run: Det går inte att hitta sökvägen.At line:1 char:1
+ gimp.lnk --license && 'Runs fine!'
+ ~~~~~~~~~~~~~~~~~~.
D:\>pwsh -c "& 'C:\Program Files\GIMP 2\bin\gimp-2.10.exe' <# The shortcut target #> --license && 'Runs fine!'"
Runs fine!
编辑:按照建议更新至 v7.1.0 预览版这个答案没有解决任何一个问题。
这是怎么回事?我该如何解决?
答案1
事实证明,我有一个 x64 处理器,但安装了 x86 版本的 Powershell。通过安装 x64 版本的 Powershell 解决了这两个问题。