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

Я пытаюсь добраться до точки, где у меня есть файл .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 голосов
/ 04 марта 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...