Я в полной растерянности с этим. Недавно некоторые мои сценарии PowerShell начали давать сбой, так как они не могут найти команду dnscmd.exe.
Что меня беспокоит, так это то, что исполняемый файл существует и работает, и я могу запустить его в командной строке. Я пробовал следующее в PowerShell для запуска команды:
Все возвращают «Термин dnscmd не распознается как имя командлета, функции, файла сценария или работающей программы ....»
Может ли кто-нибудь объяснить мне, почему PowerShell полностью не может видеть команду, а обычная командная строка / проводник Windows и т. Д. Может? Использование powershell 2.
Для меня это похоже на работу перенаправителя файловой системы. Вы используете 64-битную ОС?
Например, когда вы вызываете C: \ Windows \ system32 \ dnscmd.exe в 64-битной ОС с помощью PowerShell (x86), он будет перенаправлен на C: \ Windows \ SysWow64 \ dnscmd.exe. Перенаправление происходит в момент доступа к папке, поэтому даже если вы явно указываете путь к исполняемому файлу, вас все равно перенаправят. Это можно отключить в текущем потоке с помощью вызовов собственных API-интерфейсов Windows или можно избежать с помощью определенных переменных и псевдонимов.
Больше информации здесь: http://msdn.microsoft.com/en-us/library/aa384187%28VS.85%29.aspx
Это перенаправление файловой системы, но вы можете обойти
Вместо того
C:\windows\system32
(который перенаправитель захватит) используйте
C:\windows\sysnative\dnscmd.exe
Что вы получаете, когда выполняете:
Get-Command dnscmd.exe -CommandType Application
Это не очень своевременно, но в Windows 8.1 я обнаружил, что он ищет это в System32, но не находит. Как ни странно, он существует в системе, но вместо этого находится в каталоге winsxs. Копирование его в System32 позволило ему работать должным образом. У меня нет объяснений, почему это так, но если вы столкнетесь с этой проблемой, это может быть для вас обходным путем.
У меня была точно такая же проблема, оказалось, что я случайно закрепил x86-версию PowerShell.
В File System Redirector действительно происходит какое-то волшебство ...
просто установите функцию «Инструменты DNS-сервера». Инструменты удаленного администрирования сервера -> инструменты на основе ролей -> инструменты DNS-сервера