为什么 powershell 在单独的窗口中运行可执行文件?

为什么 powershell 在单独的窗口中运行可执行文件?

在我的其中一台服务器(2008 R2)上,powershell 拒绝运行没有扩展名的可执行文件,因此在命令提示符中键入 cmd(或 &cmd)会导致以下错误消息:

术语“cmd”未被识别为 cmdlet 的名称

以下列方式之一调用可执行文件会弹出单独的窗口(相对于父窗口异步执行)。我在 x86 版和 x64 版的 powershell 中都试过了。我试过 -Noprofile 参数。PATH 似乎没问题。它包括 System32 和所有内容。

我设法以内联形式从 powershell 执行 cmd 的唯一方法是打开标准 cmd.exe shell,从中执行 powershell.exe,然后从中执行 cmd /c echo test。Inception,嗯?

下一步我应该尝试什么?

答案1

从我们的评论交流来看,系统环境变量似乎%PATHEXT%未设置。这阻止了操作系统确定在搜索可执行文件时应检查哪些文件扩展名。此系统变量源自以下注册表值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATHEXT

如果缺少该值,您可以使用以下命令重新创建它:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /t REG_SZ /v "PATHEXT" /d ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC" /f

相关内容