在我的一台服务器上(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