Powershell无法“看到”dnscmd.exe

我完全失去了这一个。 最近,我的一些PowerShell脚本已经开始失败,因为他们无法find命令dnscmd.exe。

我有什么不知所措的是,可执行文件存在和工作,我可以在命令提示符下运行它。 我已经在PowerShell中试过以下命令来运行命令:

  • DNSCMD
  • &dnscmd
  • &dnscmd.exe
  • &c:\ windows \ system32 \ dnscmd.exe

全部返回“术语dnscmd不被识别为cmdlet,函数,脚本文件或可操作程序的名称….”

任何人都可以启发我为什么PowerShell完全无法看到命令,其中正常的命令提示符/ Windows资源pipe理器等..可以吗? 使用PowerShell 2。

这听起来像是我的文件系统redirect器的工作。 你在64位操作系统上运行吗?

例如,当您使用PowerShell(x86)在64位操作系统上调用C:\ Windows \ system32 \ dnscmd.exe时,将redirect到C:\ Windows \ SysWow64 \ dnscmd.exe。 redirect发生在文件夹被访问的地方,即使你明确提供了可执行文件的path,你仍然会被转移。 这可以通过调用本机Windows API在当前线程上禁用,也可以通过使用某些variables和别名来避免。

更多信息在这里: http : //msdn.microsoft.com/en-us/library/aa384187%28VS.85%29.aspx

它的文件系统redirect,但你可以绕过

代替

C:\windows\system32 

(redirect器将抓取的)使用

 C:\windows\sysnative\dnscmd.exe 

执行时你会得到什么:

Get-Command dnscmd.exe -CommandType应用程序

这不是很及时,但在Windows 8.1中,我发现它在System32中查找它,但没有find它。 奇怪的是它存在于系统中,而是在winsxs目录中。 复制到System32允许它按预期方式运行。 我没有任何解释,为什么这是,但如果你遇到这个问题,它可能是你的解决方法。

只需安装“DNS服务器工具”function。 远程服务器pipe理工​​具 – >基于angular色的工具 – > DNS服务器工具