PowerShell - [решено] Резолв ip адресов по списку dns серверов

Ответить
Аватара пользователя
Aquilo

PowerShell - [решено] Резолв ip адресов по списку dns серверов

Сообщение Aquilo »

Нужно получить список выводов Resolve-DnsName для разных dns серверов



Как я себе это представляю



Получаем табличный вывод:

$temp = Resolve-DnsName HOSTNAME -Server DNSSERVER1

Добавляем поле DNSServer

$temp | Add-Member -NotePropertyName DNSServer -NotePropertyValue DNSSERVER1



Повторяем это несколько раз для DNSSERVER2 и DNSSERVER3



Объединяем вывод в один табличный объект, включив отображение свойства DNSServer



Подскажите как это правильно сделать, так что бы в итоговой переменной была вся таблица, со строками со всех dns, и дополнительным столбцом, с именем dns?
Аватара пользователя
Sham

Re: PowerShell - [решено] Резолв ip адресов по списку dns серверов

Сообщение Sham »

без PassThru он ничего не отдаёт. Add-Member ... -PassThru | Select-Object *
Аватара пользователя
Sham

Re: PowerShell - [решено] Резолв ip адресов по списку dns серверов

Сообщение Sham »

А вам принципиально, чтобы вывод был Resolve-DnsName?



Я бы так делал, можно закрутить по разному, или по хостам или по dns серверам и потом делать со списком что хочешь.



Код:

Код: Выделить всё

$MyDNSList="8.8.8.8","8.8.4.4","1.1.1.1"
$MyHostList="www.ru","df329sd.234234234reT.ru","www.mail.ru","www.yandex.ru"
[System.Collections.Arraylist]$data =  @()
foreach ($MyHost in $MyHostList)
{
    foreach ($MyDNS in $MyDNSList)
    {
    $Status=[string](Resolve-DnsName -Name $MyHost -Type A -Server $MyDNS -ErrorAction SilentlyContinue| select -ExpandProperty ipaddress) 
    if (!($Status)){
    $Status="Not Found"
    }
    $data += [pscustomobject]@{host=$MyHost ;
						DNS=$MyDNS;
						Status=$Status
						}
    }
}
$data | ft -a

Вывод такой будет:





Код:

Код: Выделить всё

host                    DNS     Status                                           
----                    ---     ------                                           
www.ru                  8.8.8.8 31.177.76.70 31.177.80.70                        
www.ru                  8.8.4.4 31.177.76.70 31.177.80.70                        
www.ru                  1.1.1.1 31.177.76.70 31.177.80.70                        
df329sd.234234234reT.ru 8.8.8.8 Not Found                                        
df329sd.234234234reT.ru 8.8.4.4 Not Found                                        
df329sd.234234234reT.ru 1.1.1.1 Not Found                                        
www.mail.ru             8.8.8.8 94.100.180.70 217.69.139.70                      
www.mail.ru             8.8.4.4 94.100.180.70 217.69.139.70                      
www.mail.ru             1.1.1.1 217.69.139.70 94.100.180.70                      
www.yandex.ru           8.8.8.8 77.88.55.88 5.255.255.70 5.255.255.77 77.88.55.60
www.yandex.ru           8.8.4.4 77.88.55.88 77.88.55.60 5.255.255.70 5.255.255.77
www.yandex.ru           1.1.1.1 77.88.55.88 77.88.55.60 5.255.255.77 5.255.255.70
Ответить

Вернуться в «Скриптовые языки администрирования Windows»