检测网络连通性并记录时间戳

#Test-Connection, 之所以不采用这种方法, 是因为该命令对于丢包返回系统报错, 无法被抓取.
$end = [datetime]"2015年4月27日 20:32:20"
$start = Get-Date
$count = [math]::Round(($end - $start).TotalSeconds)
while($count -gt 0) {
Test-Connection 208.67.222.222 -Count 100 | select -Property address, responsetime, @{n="timestamp";e={Get-Date}}, @{n="status";e={if($_.responsetime -eq $null) {"unreachable"}}} #| Export-Csv -Path "C:\Users\Desktop\result.csv"
$count--
}


Test-Connection : Testing connection to computer '208.67.222.222' failed: Error due to lack of resources At line:1 char:1 + Test-Connection 208.67.222.222 -Count 100 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (208.67.222.222:String) [Test-Connection], PingException + FullyQualifiedErrorId : TestConnectionException,Microsoft.PowerShell.Commands.TestConnectionCommand
#win32_PingStatus, 这种方式相较上一种而言更友好, 对于丢包不会报错, 仅仅是不显示Time(ms).
$end = [datetime]"2015年4月27日 20:32:20"
$start = Get-Date
$count = [math]::Round(($end - $start).TotalSeconds)
While ($Count -gt 0) {
Get-WmiObject -Class win32_PingStatus -Filter "address='208.67.22.220'" | select address, responsetime, @{n="timestamp";e={Get-Date}}, @{n="status";e={if($_.responsetime -eq $null ) {"unreachable"}}} | Export-Csv -Path "C:\Users\814072\Desktop\result.csv" -Append
$count--
}

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms)
------        -----------     -----------      -----------                              -----    --------
CNHZPD-4GF... 208.67.22.220                                                             32                

参考: http://community.spiceworks.com/topic/337701-ping-via-powershell-log-results-with-timestamp

posted @ 2015-05-11 09:32  dongdonggeorge  阅读(600)  评论(0编辑  收藏  举报