Когда я запускаю nslookup
из сценария PowerShell, я всегда получаю сообщение об ошибке (которое выводится на консоль), несмотря на то, что поиск завершается успешно:
PS C:\Windows\system32> $MyOutput = nslookup -q=SOA superuser.com
8.8.4.4 nslookup : Non-authoritative answer: At line:1 char:13
+ $MyOutput = nslookup -q=SOA superuser.com 8.8.4.4
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Non-authoritative answer::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Похоже, это связано с тем, что ответ не является авторитетным. Выполнение поиска на авторитетном DNS-сервере не возвращает ошибку.
В моих попытках найти решение самостоятельно я нашел этот ТАК ответ. Он предлагает использовать команду Resolve-DNSName. К сожалению, для этого требуется Windows 8.1/Server 2012 R2, а некоторые системы, на которых будет работать мой скрипт, относятся к Windows 7.
Как я могу предотвратить отображение этой ошибки?
Бонусные баллы за объяснение, почему PowerShell считает, что произошла ошибка!