按HostName / IP检查主机连接

时间:2018-04-04 06:59:44

标签: powershell host

我有这个脚本可以通过名称检查主机连接,但是我希望它通过名称或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。 该脚本应该能够读取/识别它们并检查主机是否在线/离线。

0 个答案:

没有答案