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