Назад | Перейти на главную страницу

Список всех имен и IP-адресов компьютеров Windows

Я хотел бы перечислить все имена машин из домена и их текущий IP, если они подключены к сети. Я подумываю использовать dsquery на контроллере домена, чтобы вывести список всех машин.

Мне интересно:

  1. Да. Обычно вы запускаете запрос к одному контроллеру домена, а не ко всем. Данные реплицируются на все сайты. Запрос представляет состояние текущего сайта, которое может отличаться от другого из-за времени репликации. Чтобы получить учетные записи компьютера, вам не нужен DNS-сервер, но зоны DNS могут быть устаревшими, как сказал Матиас.
  2. Нет, чтение учетных записей компьютеров из активного каталога может быть выполнено с любой машины в домене (кроме того, что чтение по какой-то причине запрещено, что обычно не так). То же самое и с dns-запросами.
  3. Да. Увидеть ниже

Я рекомендую использовать powershell. Если у вас есть компьютер с Windows 7 или Vista (с присоединением к домену), вы можете установить RSAT и используйте предоставленные командлеты

Get-ADComputer -Filter * | Select-Object DNSHostName, @{name="Ip";Expression={(Test-Connection $_.DNSHostname -Count 1).IPV4Address.IPAddressToString}}

Этот код дает вам dnsname и текущий ipv4-адрес (если он запущен; с помощью командлета test-connection).

3 ответа на 3 вопроса:

  1. Вы можете заметить, что зоны DNS не обновлены, если вы используете специальные расписания репликации между вашими сайтами.
  2. Вам не нужно запускать его против эмулятора PDC (или PDC, если вы, не дай бог, все еще используете NT4), но если вы хотите получить информацию на компьютерах более чем в одном домене в лесу, вы можете запустить это против глобального каталога
  3. Если вы используете Microsoft DHCP в своей локальной сети, используйте следующую команду, чтобы показать активные клиентские аренды: Netsh dhcp server scope 10.0.0.0 show clients

Я бы, вероятно, использовал VBScript или PowerShell для следующих действий:

  1. Выполните поиск LDAP в глобальном каталоге, фильтруя operatingsystem атрибут,
  2. Для каждой возвращенной записи выполните поиск DNS на локальном DNS-сервере.
  3. Запросите каждый компьютер с помощью WMI (простой запрос), чтобы убедиться, что он в сети