在 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