所以我有这个脚本:
$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 的主机名。
答案 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
}
}
}