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

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

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

调用可执行文件可以通过以下方式之一popup单独的窗口(相对于父节点执行asynchronous)。 我已经尝试了在x86版本的PowerShell和X64之一。 我已经尝试过-Noprofile参数。 PATH似乎没问题。 它包括System32和全部。

我设法执行cmd行内formspowershell的唯一方法是打开标准的cmd.exeshell,从它执行powershell.exe并从它执行cmd / c回声testing。 开始吧?

接下来我应该尝试什么?

从我们的评论交换,似乎没有设置系统环境variables%PATHEXT% 。 这样可以防止操作系统在search可执行文件时确定应该检查哪些文件扩展名。 此系统variables是从以下registry值派生的:

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

如果缺less该值,可以使用以下命令重新创build该值:

 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