我有这个脚本可以通过名称检查主机连接,但是我希望它通过名称或IP地址来检查连接,因为有时候我没有HostName。
$ComputersFile = "HostName.txt"
$OutputFile = "Output.txt"
$Computers = Get-Content $ComputersFile
Remove-Item 'Output.txt'
foreach ($Computer in $Computers) {
try {
$DNS = [System.Net.Dns]::GetHostByAddress($Computer)
if (Test-Connection $Computer -Count 1 -ErrorAction SilentlyContinue) {
"$Computer^Yes^$($DNS.HostName)^$($DNS.AddressList[0].IPAddressToString)^ONLINE" |
Out-File -Enc UTF8 -Append $OutputFile
} else {
"$Computer^Yes^$($DNS.HostName)^$($DNS.AddressList[0].IPAddressToString)^OFFLINE" |
Out-File -Enc UTF8 -Append $OutputFile
}
} catch {
"$Computer^No" | Out-File -Enc UTF8 -Append $OutputFile
}
}
输入将是一个文本文件,其中包含一堆IP地址和HostName。 该脚本应该能够读取/识别它们并检查主机是否在线/离线。