Я хочу ловить сетевой трафик для выявления одной проблемы. Чем? Как? До изобретения своего велосипеда можно вспомнить о готовых продуктах, предназначенных для перехвата сетевого трафика и последующего анализа. Вот основные программы, занимающиеся анализом трафика. Из бесплатных это TCPdump, Wireshark и MS Message Analyzer. В зависимости от имеющегося сетевого оборудования это еще могут быть встроенные средства типа Mikrotik Packet Sniffer.
Но оказалось что ловить сетевые пакеты можно просто из командной строки Powershell с использованием набора командлетов NetEventPacketCapture. Такая фишка начиная с Windows 8.1/2012R2.
Но, если вы помните, поскольку в PowerShell можно использовать инструментарий .NET, то еще до появления набора командлетов NetEventPacketCapture в сети был скрипт сниффера Get-Packet. Ознакомиться с вариантом его работы можно здесь.
А сегодня разберем пример с NetEventPacketCapture.
Представим, что на компьютере пользователь работает в терминальной сессии, подглядим за его работой при помощи PowerShell.
Для начала создадим подключение к компьютеру пользователя:
$Cim = New-CimSession -ComputerName 'WASA07'
После этого создадим сессию обработчика событий:
New-NetEventSession -Name "Session01" -CimSession $Cim -LocalFilePath "C:\Windows\Temp\Trace.etl" -CaptureMode SaveToFile
И добавим поставщика событий:
Add-NetEventProvider -CimSession $Cim -Name 'Microsoft-Windows-TCPIP' -SessionName "Session01"
Посмотреть всех возможных поставщиков можно командой logman query providers.
После чего осталось запустить трассировку:
Start-NetEventSession -Name "Session01" -CimSession $Cim
Для остановки достаточно в той же команде заменить Start на Stop.
Результаты можно посмотреть следующей командой:
Get-WinEvent -Path "\\WASA07\C$\Windows\Temp\Trace.etl" -Oldest
Кстати вот вам еще один пример чтения файлов формата ETL.
Для автоматизации процессов такой трассировки системный администратор Dan Franciscus написал скрипт Invoke-PSTrace.
При запуске его скрипта можно задать имя удаленной машины, поставщика событий, а при необходимости открыть трассировку в Microsoft Message Analyzer.
Удачи.
No comments:
Post a Comment
А что вы думаете по этому поводу?