2014-12-19 4 views
0

Я работаю над скриптом powershell для поиска сайтов, которые либо не работают на нашем сервере, либо указывают на другой сервер. Я извлекаю все имена сайтов из файла и использую его, чтобы найти только те сайты, которые не работают на нашем сервере. Я пытаюсь использовать ниже сценарий, но получаю сообщение об ошибке.Сценарий для поиска мертвого веб-сайта/домена

Как всегда, и помощь или совет будут очень признательны.

$servers = get-content "path_to_the_file" 
foreach ($server in $servers) { 
$addresses = [System.Net.Dns]::GetHostAddresses($server) 
foreach($a in $addresses) { 
"{0},{1}" -f $server, $a.IPAddressToString 
} 
}  

Ниже ошибка я получаю:

Exception calling "GetHostAddresses" with "1" argument(s): "No such host is known" At  
C:\test1.ps1:3 char:50 + $addresses = [System.Net.Dns]::GetHostAddresses <<<< ($server) + 
CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : 
DotNetMethodException 
+3

Не подносите нас в напряжении: что ошибка? – J0e3gan

+0

Ниже приведена ошибка, по которой я получаю вызов Exception, называемый «GetHostAddresses» с аргументом «1»: «Нет такого хоста известно» В C: \ test1.ps1: 3 char: 50 + $ addresses = [System.Net. Dns] :: GetHostAddresses <<<< ($ server) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException – Raviroks

+0

Хорошо работает с моей стороны. На каком значении '$ server' это заканчивается неудачей? –

ответ

2

Просто ловушка исключение:

try { 
    $addresses = [System.Net.Dns]::GetHostAddresses($server); 
} 
catch { 
    $addresses = [IPAddress]'0.0.0.0'; 
} 
+0

Спасибо, Бэкон. Я все еще изучаю powershell. Я изменил свой скрипт, но результат не так желателен. Сценарий выглядит следующим образом. Out out должен быть только тем доменом, который не работает на нашем сервере
$ servers = get-content "C: \ test1.txt" foreach ($ server in $ servers) { try { $ addresses = [Система .Net.Dns] :: GetHostAddresses ($ сервер) } поймать {} Еогеасп ($ а в $ адресов) { попробовать { $ D = "{0}, {1}" -f $ сервер , $ a.IPAddressToString } поймать {} } Если ($ d -match '184.154.53.165') { # Write-Host "#" # записи хоста "Доменное имя" # $ d } еще { # Write-Host "" # записи хоста "Доменное имя" $ d } } – Raviroks