Как получить IP-адрес из скрипта списка серверов

Вот как вы можете получить список 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 инструменты

Ссылка на основную публикацию