扫描子网以获取ilo ips

时间:2018-09-13 15:16:57

标签: powershell networking dns

所以我有这个脚本:

$srvILO = '172.16.2.210'
$username='svcilo'
$password='xxxx'

$status_message = get-HPiLoFirmwareversion -Server $srvILO -Username $username -Password $password -DisableCertificateAuthentication -WarningAction SilentlyContinue | Select-Object -ExpandProperty STATUS_MESSAGE

if ($status_message -eq 'OK'){
Write-Host "Status OK"
Exit 0
}
else {
Write-Host "$status_message"
Exit 0
}

我希望将其部署在具有多个子网的多个客户中,并且ilo端口并不总是在同一ip上。

我是否可以通过任何方式扫描子网以查找一部分主机名(该主机名总是使ILO不受约束),并为分配给它的ip地址定义一个变量?

类似 $ ILO IP =测试连接...扫描子网192.168.0.210、192.168.1.210、192.168.2.210等...搜索包含 dns 的主机名。

1 个答案:

答案 0 :(得分:0)

您可以尝试类似的方法来扫描一个范围内的所有IP

$username='svcilo'
$password='xxxx'
$ipstart = "1"
$ipend = "255"
$ipgroupes = "172.168.2"
$ipstart..$ipend  | ForEach-Object{
$ip = "$ipgroupes.0" -replace "0$",$_ 

$DNSName = Resolve-DnsName -Name $ip | Select NameHost



if ($DNSName -like '*ILO*'){

    $status_message = get-HPiLoFirmwareversion -Server $ip -Username $username -Password $password -DisableCertificateAuthentication -WarningAction SilentlyContinue | Select-Object -ExpandProperty STATUS_MESSAGE

    if ($status_message -eq 'OK'){
        Write-Host "Status OK"
        Exit 0
        }

    else {
        Write-Host "$status_message"
        Exit 0
        }

}



}