Получить все имена хостов в локальном DNS для текущего сервера Windows.
Я развернул BGInfo от SysInternals на всех наших серверах, как физических, так и виртуальных. Однако некоторые из наших серверов имеют несколько имен хостов для поддержки «обратной совместимости» с некоторыми из наших устаревших программных систем после замены сервера или объединения его функций с другим сервером. В некоторых случаях это может включать несколько «альтернативных» имен хостов, созданных несколько лет назад.
ПРИМЕР:
Альтернативное имя хоста ( исходный компьютер ):
NT-PROD
Альтернативное имя хоста ( файлы/службы, объединенные с удаленного сервера ):
NT-DATA
Альтернативное имя хоста ( аппаратный сбой = новый компьютер ):
PRODUCTION-07
Текущее имя компьютера ( физический сервер перенесен на виртуальный ):
PRODUCTION-21
Используя базовыеWMIC
чтобы получить имя компьютера, просто возвращает текущее имя, указанное в свойствах системы, при этом выполняяNSLOOKUP
на IP-адресе сервера, по-видимому, происходит то же самое. Есть ли способ активно получить все имена хостов DNS, на которые этот конкретный сервер будет отвечать, для включения в мои обои BGInfo?
Полагаю, я мог бы создать текстовый файл (или что-то в этом роде), который BGInfo мог бы проверять на наличие альтернативных имен хостов, но я стараюсь сделать это как можно более «защищенным от идиотов», чтобы не забыть обновить/применить любые будущие изменения DNS. , или случайно перезапишите что-нибудь неверной информацией. Я с готовностью признаю, что я не «свободно» владею сценариями PowerShell или более сложными запросами WMIC, но предполагаю, что именно к этому мы и направляемся.
1 ответ
ПытатьсяResolve-DNSName <IP>
Он должен вернуть все имена, зарегистрированные на IP-адрес сервера.
Имейте в виду, что это будет работать только с вашими локальными зонами. Не в Интернете или какое-либо подобное безумие ( подробнее об этом см. Ответы на https://stackoverflow.com/questions/31539904/get-all-dns-records-associated-with-an-ip)