PowerShell - 參照清單持續 Ping 特定主機



前言

在先前撰寫的 PowerShell - 參照清單快速 Ping 特定的 Windows 主機 文章中,主要是針對特定的 Windows 主機,先確認是否有網域環境中的電腦帳號,然後才執行 ping 的動作。本文的需求則有些微不同,希望可以持續 ping 特定的主機 (Windows 和 Linux),然後 ping 失敗的主機會在 PowerShell 視窗中用「紅色字體」顯示之外,也把 ping 失敗的時間和主機名稱寫入 log 當中,所以本篇筆記就出現了。


執行結果

首先,請在 PowerShell 所在路徑中,建立 Ping_hosts.txt 文字檔案,將要持續 ping 的主機清單寫入其中。

執行時,首先會先用「紫色字體」顯示目前的時間,以及 ping 主機的總數 (讀取主機清單),然後透過 Test-Connection 執行 ping 特定主機的動作 (以白色字體顯示),但是 ping 失敗的主機先不顯示,否則會讓整個 PowerShell 執行視窗的結果亂掉 (錯誤訊息噴太多了 😂),接著再用「紅色字體」顯示 ping 失敗的主機,同時把 ping 失敗的時間和主機名稱寫入 log 當中 (<今天日期>_ping_failed_hosts.txt),最後用「黃色字體」顯示休息 60 秒之後,再繼續 ping 的動作。






Keep_Ping_Hosts.ps1