在 PowerShell 中 Ping 主机名列表和输出结果到 CSV

Rohan Timalsina 2022年5月16日
在 PowerShell 中 Ping 主机名列表和输出结果到 CSV

Ping 设备或主机名是 PowerShell 中可用的基本功能。你可以使用 Test-ConnectionTest-NetConnection cmdlet 发送回显请求并测试 ping 连接。

这对网络管理员非常有用。本教程将教你 ping 主机名列表并将结果输出到 PowerShell 中的 CSV。

使用 Test-Connection Ping 主机名列表并将结果输出到 PowerShell 中的 CSV

Test-Connection cmdlet 向一台或多台远程计算机发送 Internet 控制消息协议 (ICMP) 回显请求数据包或 ping,并返回回显响应回复。你可以轻松确定是否可以通过 IP 网络访问特定计算机。

在这里,我们在文件 test.txt 中有一个主机名列表。

Get-Content test.txt

输出:

www.google.com
www.delftstack.com

以下脚本 ping 文件 test.txt 中的主机名列表并将结果输出到 result.csv 文件。

$testOutput= @()
$testnames = Get-Content "test.txt"
foreach ($name in $testnames){
  if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
   $testOutput+= "$name,Up"
   Write-Host "$Name,Up"
  }
  else{
    $testOutput+= "$name,Down"
    Write-Host "$Name,Down"
  }
}
$testOutput | Out-File "result.csv"

在上面的 PowerShell 脚本中,Get-Content cmdlet 用于获取 test.txt 文件中的主机名列表,并使用 ForEach 循环遍历每个主机名。

Test-Connection cmdlet ping 列表中的每个主机名。如果 ping 状态为 true,则主机名存储在 $testOutput 变量中作为 Up;它将主机名作为 Down 存储在 $testOutput 变量中。

$testOutput 变量通过管道传送到 Out-File cmdlet,后者将输出发送到文件 result.csv。文件中的内容与终端中显示的内容相同。

输出:

www.google.com,Up
www.delftstack.com,Down

我们希望本文能帮助你了解如何 ping 主机名列表并将结果输出到 .csv 文件。

作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website