<# .SYNOPSIS Pings one or more hosts on an interval, logs every reply to CSV, and summarizes the outages when you stop it. .DESCRIPTION Sends one ICMP echo to each target every -IntervalSeconds and appends a row per ping to a CSV: timestamp, target, Up or Down, latency, and whether the target just changed state. A target is only marked down after -DownAfter misses in a row, so one dropped packet on Wi-Fi doesn't count as an outage. Up/down changes are also written to the console as they happen. Runs until -Duration is up, or until you press Ctrl+C or Q. Either way it finishes cleanly and returns one summary object per target, including every outage with its start, end and length. .PARAMETER ComputerName Host names or IP addresses to watch. .PARAMETER IntervalSeconds Seconds between rounds of pings. Default: 5. .PARAMETER Duration How long to run, as a timespan ('00:30:00', '8:00:00' or New-TimeSpan -Hours 8). Default: until stopped. .PARAMETER TimeoutMs How long to wait for each reply, in milliseconds. Default: 1000. .PARAMETER DownAfter Consecutive misses before a target counts as down. Default: 2. .PARAMETER LogPath CSV file to append to. Default: PingLog--