Объединить 2 списка с условием в PowerShell? - PullRequest
0 голосов
/ 11 октября 2018
$computerips = 'IP 1','IP 1','IP 3','IP 4'
$computername = "IP 1 NAME","IP 2 NAME","IP 3 NAME","IP 3 NAME"

For ($i=0; $i -lt $computerips.count; $i++) {
    $computerips[$i]+$computername[$i]
}

Предположим, что $ computerips - это список IP-адресов, а $ computername - список псевдонимов / имен IP-адресов.

Как включить условие if else (Test-Connection) в вышеприведенный кодна основе true или false и использовать только имя IP-адреса со статусом OK или NOK?

т.е. мне нужно что-то вроде этого:

foreach ($computer in $computerips) {
    if (Test-Connection -ComputerName $computer -Count 3 -EA SilentlyContinue) {
        Write-Host $computername "Online"
    }
    else {
        Write-Host $computername "Offline"
    }
}

Мне нужно как-то сопоставить имя с IPпрежде чем отправить его на выход.Любую помощь ценю.

1 Ответ

0 голосов
/ 21 ноября 2018
$computerips = '10.10.10.0','10.10.10.1','10.10.10.2'
$computername = "10.10.10.0 Server1","10.10.10.1 Server2","10.10.10.2 Server3"
foreach ($computer in $computerips) {
    if (Test-Connection -ComputerName $computer -Count 3 -EA SilentlyContinue) {
        write-host "$((($computername -match $computer).replace($computer,'')).trim()) Online"
    }
    else {
        write-host "$((($computername -match '$computer').replace('$computer','')).trim()) Offline"
    }
}

Вывод

Сервер1 Онлайн Сервер2 Автономный сервер3 Онлайн

...