在 PowerShell 中 Ping 主机名列表和输出结果到 CSV
Rohan Timalsina
2022年5月16日
Ping 设备或主机名是 PowerShell 中可用的基本功能。你可以使用 Test-Connection
和 Test-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