需要“ ping”输出,包括日期/时间,源IP地址,目标IP地址,低/高/平均延迟以及CSV文件中的数据包丢失

时间:2019-03-04 16:03:37

标签: powershell

我正在设法找到一个.csv文件,其中一行包含以下信息

  • 日期/时间
  • SourceIP
  • TargetIP
  • 低/高/平均延迟
  • 丢包

以下命令很有用,因为它返回有关低/高和平均响应时间的一些详细信息。

Test-Connection $Address -Count 1 | 
    Measure-Object ResponseTime -Minimum -Average -Maximum |
    Export-Csv -Path $FilePath -Append -NoTypeInformation -Force

返回:

Average  Maximum  Minimum  Property
-------  -------  -------  --------
14            14       14  ResponseTime

此命令也很有用,但未提供响应时间的详细信息

Test-Connection $Address -Count 1 |
    Select-Object -Property PSComputerName, IPV4Address, ResponseTime |
    Export-Csv -Path $FilePath -Append -NoTypeInformation -Force

返回:

PSComputerName  IPV4Address  ResponseTime
--------------  -----------  ------------
XXXXXXXXXXXXXX  8.8.4.4                23

是否可以在一行中以CSV文件形式显示所有信息,还包括主机IP地址?

1 个答案:

答案 0 :(得分:0)

以下应做您想做的事:

$Response = Test-Connection $Address -Count 1
$ResponseTimeMetrics = $Response | Measure-Object ResponseTime -Minimum -Maximum -Average
$ResponseObject = $Response | Select-Object `
    PSComputerName,IPv4Address,ResponseTime,
    @{name="Minimum";Expression={$ResponseTimeMetrics.Minimum}},
    @{name="Maximum";Expression={$ResponseTimeMetrics.Maximum}},
    @{name="Average";Expression={$ResponseTimeMetrics.Average}}
$ResponseObject | Export-CSV -Path $FilePath -Append -NoTypeInformation -Force

$response变量正在存储Test-Connection结果。 $ResponseTimeMetrics存储着Measure-Object命令中想要的平均值,最小值和最大值。 $ResponseObject选择存储在$Response中的对象已经提供的属性,然后从$ResponseTimeMetrics分配的对象中添加属性。我正在使用哈希表将自定义属性添加到$ResponseObject,这样我就可以根据自己的喜好轻松地命名属性,并提供一个并非来自管道的值。

有关使用Select-Object创建和检索对象属性的更多信息,请参见Select-Object