Мониторинг сетевых подключений с Powershell Get-NetTCPConnection


18 сентября 2019


Мониторинг сетевых подключений с Powershell Get-NetTCPConnection

В Powershell есть команда, которая по аналогии с netstat, выводит список сетевых подключений. Эту команду можно использовать во множестве направлений, например для мониторинга подключений нового приложения. На примере описанной в этой статье будет показано, как с помощью команды Get-NetTCPConnection и других встроенных методов Powershell, можно получить ip, имя хоста, процесса и порт. Конечно, список можно расширить ограничиваясь фантазией.

Для начала получим стандартный вывод команды в Powershell:

Get-NetTCPConnection | Select-Object -Property LocalPort, State, OwningProcess

Powershell Get-NetTCPConnection

На примере выше выведены свойства: локальный порт, состояние и идентификатор процесса. Добавим свойства: удаленный порт, удаленный ip адрес и локальный адрес, на случай если будем выполнять команды на удаленном компьютере с Powershell.

Get-NetTCPConnection -State Established | Select-Object -Property LocalAddress, LocalPort, RemoteAddress, RemotePort, State | ft

Немного дополним для вывода DNS имени и имени процесса:

Get-NetTCPConnection -State Established |
Select-Object -Property LocalAddress, LocalPort, 
						@{name='DNSName';expression={(Resolve-DnsName $_.RemoteAddress).NameHost}},
						RemoteAddress, RemotePort, State,
                        @{name='Process';expression={(Get-Process -Id $_.OwningProcess).Name}}, CreationTime |
Format-Table -AutoSize

Powershell имя процесса по TCP соединению

Теперь мы можем увидеть все сетевые взаимодействия. Такой небольшой скрипт можно бесконечно дополнять. Например я бы добавил колонку, где вместе с номерами портов писалось и название протокола, так как я их не помню. Можно добавить путь, откуда запущен процесс, так как на рабочих компьютерах процессы запущенные вне Program Files и Windows всегда вызывают подозрения.

...

Теги: #powershell


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.