ping服务器ping时如何查看主机名



i ping ping the服务器正在工作(它向我显示了可能被ping的IP地址(,但我希望它显示主机名和IP地址。我试图合并[System.Net.Data.Dns]::GetHostName(),但我不知道将其放在哪里。我是使用PowerShell的初学者。我还尝试使用-and,但它不起作用。
我了解如何做python,我只是不知道如何将其翻译成Powershell。

$columnC = "n1-1mon-i3fp04","n1-1mon-i3fp06","n1-1mon-i3fp07","n1-r-1mon-i3fp09","n1-r-1mon-i3fp10","n1-1mon-i3fp08","n1-1mon-i3fp03","n1-1mon-i3fp02","n1-1mon-i3fp111"
$columnC | % $_ {$Device = Resolve-DnsName -Name $_ 
    $Device.[System.Net.Data.Dns]::GetHostName()
  if (test-connection $Device.("IPAddress")) {write-host Device.("IPAddress") "Ping succeeded." -foreground green} 
   else {write-host $Device.("IPAddress") "Ping failed." -foreground red}}

结果显示了一个错误消息,例如语法是错误的。我希望它同时显示IP地址和主机名。

[edit -theo指出,GetHostByName已被弃用以支持GetHostEntry。当我测试它时,它给出了更一致的结果,因此我换了它们。]

这将获得计算机名称,主机名和在线状态。然后将它们保存到自定义对象中,将对象发送到$结果集合,最后 - 显示集合中的内容。[ grin ]

# fake reading in a text file
#    in real life use Get-Content
$ComputerList = @'
BetterNotBeThere
LocalHost
10.0.0.1
127.0.0.1
'@ -split [environment]::NewLine
$Results = foreach ($CL_Item in $ComputerList)
    {
    try
        {
        $HostName = [System.Net.Dns]::GetHostEntry($CL_Item).HostName 
        }
        catch
        {
        $HostName = '__Not Found__'
        }
    [PSCustomObject]@{
        ComputerName = $CL_Item
        HostName = $HostName
        Online = Test-Connection -ComputerName $CL_Item -Count 1 -Quiet
        }
    }
$Results

输出...

ComputerName     HostName      Online
------------     --------      ------
BetterNotBeThere __Not Found__  False
LocalHost        [MySysName]    True
10.0.0.1         __Not Found__  False
127.0.0.1        [MySysName]    True

最新更新