Требуется вывод «ping», включающий дату / время, IP-адрес источника, целевой IP-адрес, низкую / высокую / среднюю задержку и потерю пакетов в файле CSV

#powershell

#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
------- ------- ------- --------
14 14 14 Время ответа

Эта команда также полезна, но не предоставляет подробных сведений о времени отклика

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

ВОЗВРАТ:

PSComputerName IPv4address Время отклика
-------------- ----------- ------------
XXXXXXXXXXXXXX 8.8.4.4 23

Есть ли способ отобразить всю информацию в CSV-файле в одной строке, также включая IP-адрес хостов?

Ответ №1:

Следующее должно делать то, что вы хотите:

 $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 .

Комментарии:

1. Вы можете безопасно убрать обратные метки в строках 4,5 и 6.

2. AdminOfThings, действительно большое спасибо. Не только для предоставления решения, но и для четкого объяснения логики. Это работает отлично.

3. Также спасибо Тео