IP

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

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

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


[PS]C:\ (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*», так в моем лабе маркируются домен контроллеры.

[PS] C:\>(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 это сделать проще пареной репы.

Связанные записи:


  • Николай Козлов

    А еще пинговать можно так

    $ping = New-Object System.Net.Networkinformation.Ping
    1..254 | % { $ping.send(“192.168.100.$_”) | select address, status }
      

  • http://alexxhost.ru Alexx

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

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

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

  • Pavel Nagaev

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

  • n0g00dina

    а nslookup -q=ns FQDN ?

  • Диплодок

    В помощь ссылка

  • Ава

    kleopatra1977_88@mail.ru пустышка

  • TV

    Thanks for the info, send more to 230273@mail.ru