Как получить IP адреса всех Exchange Server в организации и проверить, что они доступны по сети?

Иногда,  при составлении отчетов, требуется получить список серверов Exchange в организации или убедиться, что все они доступны(пингуются) с определенного сервера или вашего компьютера.  Существует масса способов, но поскольку у вас наверняка уже открыт Exchange Management Shell, то сделать это можно одной строчкой PowerShell.

Нижеприведенный one-liner получает список Exchange серверов в организации, сортирует их по имени и пингует каждый сервер из списка. Команда format-table -autosize форматирует полный вывод столбцов.

(get-exchangeserver |sort -property name|
                foreach { Test-Connection -CN $_.fqdn -Count 1 -BufferSize 16 })|
                format-table -AutoSize

 

Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
Server11 Server11.exchangefaq.ru 100.100.18.4 {} 16 175
Server11 Server21.exchangefaq.ru 100.100.18.3 {} 16 183
Server11 Server22.exchangefaq.ru 100.100.18.5 {} 16 191
Server11 Server26.exchangefaq.ru 100.100.22.5 {} 16 190
Server11 Server27.exchangefaq.ru 100.100.21.6 {} 16 195
Server11 Server24.exchangefaq.ru 100.100.23.14 {} 16 20
Server11 Server25.exchangefaq.ru 100.100.180.11 {} 16 22
Server11 Server20.exchangefaq.ru 100.100.21.13 {} 16 7
Server11 Server12.exchangefaq.ru 100.100.1.1 {} 16 0
Server11 Server14.exchangefaq.ru 100.100.1.2 ::1 16 0
Server11 Server23.exchangefaq.ru 100.100.1.3 {} 16 0
Server11 Server29.exchangefaq.ru 100.100.1.18 {} 16 0

 

Можно воспользоваться командлетами для работы с AD и получить IP адреса, пропинговать любые компьютеры в сети.

В начале нужно подгрузить модуль работы с AD

Import-module ActiveDirectory

Затем запустить one-liner, который выбирает из AD компьютеры, содержащие «*DC*», так в моем лабе маркируются домен контроллеры.

(get-adcomputer -filter 'name -like"*DC*"' |sort -property name|
               foreach{ Test-Connection -CN $_.DNSHOSTNAME -Count 1 -BufferSize 16 })|
               format-table -AutoSize

p.s. мне подобная информация потребовалась, когда нужно было получить IP адреса всех домен контроллеров в сети, а вспоминать их имена и узнавать IP путем пинга было просто лень. Оказалось, что в powershell это сделать проще пареной репы.

Related Posts

This Post Has 7 Comments

  1. А ещё пинговать можно так:
    ping server_1

    Но, ИМХО, Test-Connection в любом случае рулит!

    ЗЫ. Паша, спасибо за заметку. Мне вот тут надо было найти все сервера в организации, так тоже пользовался Test-Connection для выяснения их текущего состояния, ну просто оочень удобно!

  2. Я до сих пор удивляюсь и восхищаюсь возможностями PowerShell! Одно знаю точно — надо в нем практиковаться, чтобы быть, как рыба в воде. Особенно Exchange админам.

Добавить комментарий