Help us understand the problem. What is going on with this article?

PowerShellだけでExpingのような連続pingを実行する

はじめに

ネットワークのお仕事をされている方でしたら Exping というツール
を使ったことがある方がいらっしゃると思います。
障害テスト時の通信断時間を確認したりするときに便利ですよね。
ですが、この手のツールを諸事情によりインストールできないことがあるかもしれません。
ここでは、Windows標準のPowerShellだけで似たようなことをやってみます。

検証環境はWindows 10、PowerShe ll5.0ですですが、
特に凝ったこったをやってないので、
Windows 7 PowerShell 2.0でもできるかもしれません。

実装

:psping.ps1

# pingを実行する宛先を指定する
$targets = @"
192.168.1.1
192.168.1.9
192.168.1.8
192.168.1.14
"@ -split "\r\n"

# 設定
# pingを実行する間隔(ミリ秒)
$interval = 500

# 繰り返し数
$repeat   = 100

@(1..$repeat) | foreach {
    $targets | foreach {
        # 間隔をあけるためのsleep
        Start-Sleep -Milliseconds $interval
        try {
            # ping実行
            $tc = Test-Connection $_ -count 1 -ErrorAction Stop

            #結果の格納
            $result = "○"
        } catch [Exception] {
            # 失敗した場合
            $result = "×"
        }
        # 現在時刻
        $datetime = Get-Date -F "yyyy/MM/dd HH:mm:ss.fff"

        # CSV形式で結果情報を作成
        $row = $result + "," + $datetime  + "," + $tc.Address + "," + $tc.ResponseTime 

        # CSVからオブジェクトを出力
        $row | ConvertFrom-Csv -Header @("Result","DateTime","Target","ResponseTime(ms)")
    }

} | Out-GridView -Title "Ping Results" # グリッドビューを表示する

Test-Connection コマンドの実装上の事情により、
戻り値のIPv4Addressはあえて表示させてません。
参考:Test-Connectionが遅い理由と対策方法について

実行例

D:\>powershell -File  psping.ps1 -ExecutionPolicy RemoteSigned

psping.gif

実装が荒い部分もあり、ベースとしてはこのような感じになるかと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away