выполнить nslookup из PowerShell

Я пишу powershell, чтобы точно определить IP-адрес с имени сервера, для чего мне нужно встроить код nslookup в мой powershell.

как я могу выполнить работу по интеграции?

Кто-нибудь может мне помочь?

Add-PSSnapin Microsoft.SharePoint.PowerShell
$web = Get-SPWeb -Identity “http://nycs00058260/sites/usitp“
$server_status = "PROD"
$list=$web.Lists[”DNS_Status”]
$items = $list.items 
Foreach($item in $items){
    $item_name = $item["Server_name"]  #need to get the ip by this name

    /*nslook up*/
     $item_name.update()

}

person bowang    schedule 12.09.2012    source источник


Ответы (3)


Если вы устанавливаете модуль PSCX, он поставляется с командлетом Resolve-Host, который обрабатывает поиск имен.

В противном случае этот однострочник сделает свою работу

[System.Net.Dns]::GetHostAddresses("www.msn.com")

Вы также можете передать IP-адрес, но результаты будут другими.

См. также http://blogs.msdn.com/b/powershell/archive/2006/06/26/647318.aspx и http://powershell.com/cs/media/p/210.aspx

person alroc    schedule 12.09.2012
comment
Ваш однострочник — самый простой способ сделать это в Windows 7. - person Iain Samuel McLean Elder; 17.06.2014
comment
Хотя я думал об одном и том же, [System.Net.DNS] и nslookup используют совершенно разные методологии для запроса записей DNS. 1. [System.Net.DNS] сначала использует ваш локальный кеш, nslookup нет. 2. [System.Net.DNS запросит запись A, если поиск PTR завершится неудачно, а затем ответит обратным ответом. [System.Net.DNS] НЕ является хорошей диагностической заменой nslookup. - person Joseph Kern; 17.06.2015

PowerShell 3.0 в Windows 8 и более поздних версиях поставляется с командлетом Resolve-DnsName, который получает следующую информацию:

(Resolve-DnsName $server_name)[0].IpAddress
person Keith Hill    schedule 12.09.2012
comment
v3 есть, v2 нет. Кроме того, вы случайно назвали это Resolve-DnsClient в своей первой строке :) - person latkin; 12.09.2012
comment
Да, я думал об этом, когда писал это, но как-то не дошло до кончиков пальцев. :-) И да, DnsClient - это модуль с именем. Исправлена. - person Keith Hill; 12.09.2012
comment
Можете ли вы уточнить в своем ответе, что модуль DnsClient доступен только в Windows 8? Ричард Сиддэуэй говорит, что это невозможно доступны в Windows 7, так как базовые классы WMI недоступны. - person Iain Samuel McLean Elder; 17.06.2014
comment
«Resolve-DnsName» в Technet: technet.microsoft .com/en-us/library/jj590781(v=wps.620).aspx - person user4531; 12.05.2017

Просто используйте:

Resolve-DnsName monServer | ? { # make selection here } | % { $_.IPAdress }  | select-object -first 1
person MUY Belgium    schedule 27.01.2016