Вот как вы можете получить список IP-адресов, FQDN и Ping-статуса с помощью простого скрипта списка серверов Powershell.
Для начала создайте файл Servers.txt в папке C: \ temp со списком серверов, которые вы хотите разрешить. Вам нужно поставить один сервер на линию. Вам также необходимо установить Microsoft Excel в системе, поскольку результат будет экспортирован в файл .csv.
C: \ Temp \ servers.txt
servers.txt пример:
имя хоста
hostname2
hostname3
Теперь создайте новый текстовый файл и переименуйте его в serverlist.ps1
$ counter = 1
$ comps = get-content C: \ TEMP \ servers.txt
$ dnsResults = "C: \ TEMP \ IP address.csv"
function get-dnsres {
foreach ($ comp in $ comps) {
$ TempIP = ([system.net.dns] :: GetHostAddresses ($ comp)) | выберите IPAddressToString
$ status = "Система обработки {0} из {1}: {2}" -f $ counter, $ comps.Count, $ comp
Ход выполнения записи 'Resolving DNS' $ status -PercentComplete ($ counter / $ comps.count * 100)
$ Прилавок ++
$ comp |
select @ {Name = 'ComputerName'; Expression = {$ comp}}, `
@ {Name = 'ResolvesToIP'; Выражение = {[system.net.dns] :: GetHostAddresses ($ comp)}}, `
@ {Name = 'IPResolvesTo'; Выражение = {([system.net.dns] :: GetHostEntry ($ TempIP.IPAddressToString)). HostName}}, `
@ {Name = 'PingStatus'; Выражение = {`
if ((get-wmiobject -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ comp'"). statuscode -eq 0) {'Host Online'} `
elseif ((get-wmiobject -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ comp'"). statuscode -eq 11003) {'Узел назначения недоступен'} `
elseif ((get-wmiobject -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ comp'"). statuscode -eq 11010) {'Запрошено время ожидания'} `
elseif ((get-wmiobject -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ comp'"). statuscode -eq $ Null) {'NoDNS'}
}
}
}
}
get-dnsres | export-csv $ dnsResults -notypeinformation
invoke-item $ dnsResults
Сохраните скрипт в той же папке в C: \ temp.
Прежде чем вы сможете запустить скрипт, вам нужно включить политику выполнения в вашей системе:
Запустите Powershell в режиме с повышенными правами (запуск от имени администратора) и выполните следующую команду:
Set-ExecutionPolicy RemoteSigned
Теперь запустите скрипт Powershell с помощью этой команды:
powershell -noexit “ «» C: \ Temp \ serverlist.ps1 «»»
Вы должны получить результаты на экране, а также сохранить в C: \ temp \ IP address.csv файл.

Пожалуйста, не стесняйтесь комментировать, если у вас есть какие-либо советы относительно этого простого сценария списка серверов.
Также доступны для скачивания некоторые сторонние бесплатные инструменты, такие как:
NirSoft FastResolver
IP инструменты