PowerShell - Log Ping
Mit dieser Funktion lässt sich die RTT von Pings über Zeit festhalten:
function logping { param ( $address ) $filedate = (get-date -Format "yyyy-MM-dd__HH_mm_ss") $filename = "$filedate - $address.csv" Write-Host "Starting Log: $filename" Write-Output """Date"",""Time"",""Response""" | Out-File $filename -Append $command = "ping -t -w 1000 $address" Invoke-Expression $command | foreach { $date = (get-date -Format "yyyy-MM-dd") $timestamp = (get-date -Format "HH:mm:ss") $output = $_ if (Select-String -InputObject $_ "TTL=") { $splitoutput = $output.split(" ") foreach ($block in $splitoutput) { if (Select-String -InputObject $block "ms") { $block_split = $block.split("=") foreach ($block_element in $block_split) { if (Select-String -InputObject $block_element "ms") { if (Select-String -InputObject $block_element "<") { $miliseconds = $block_element.replace("ms","").split("<")[1] } else { $miliseconds = $block_element.replace("ms","") } Write-Host "Logging - Date: $date - Timestamp: $timestamp - Miliseconds: $miliseconds" Write-Output """$date"",""$timestamp"",""$miliseconds""" | Out-File $filename -Append } } } } } else { if ($_ -ne "" -and (-not (Select-String -InputObject $_ ":"))) { Write-Host "Logging - Date: $date - Timestamp: $timestamp - Miliseconds: -1" Write-Output """$date"",""$timestamp"",""-1""" | Out-File $filename -Append } } } }
Danach in ein beschreibbares Verzeichnis Wechseln und einfach mit einem Hostnamen ausführen.
Wenn die Antwort unter 1000ms zurückkommt, wird die Zeit in die Spalte Response eingetragen, ansonsten der Wert -10. Damit lassen sich Ausfälle leichter erkennen.
Bei < 1 ms wird 1ms verwendet.
cd $env:TEMP logping "192.168.0.1"