Решение

Решение

Используя netstat -a -o -n я могу получить список портов и PID

Затем мне нужно зайти в диспетчер задач, добавить PID и посмотреть, кто это. (довольно раздражает)

введите описание изображения здесь

Мне было интересно, есть ли команда CMD, которая делает все это (используя find, for, powershell)

чтобы я мог получить имя процесса

решение1

Решение

Используйте -bпараметр:

  -b            Displays the executable involved in creating each connection or
                listening port. In some cases well-known executables host
                multiple independent components, and in these cases the
                sequence of components involved in creating the connection
                or listening port is displayed. In this case the executable
                name is in [] at the bottom, on top is the component it called,
                and so forth until TCP/IP was reached. Note that this option
                can be time-consuming and will fail unless you have sufficient
                permissions.

ПримечаниеКоманда netstat -bне будет выполнена, если ее не запустить из командной строки с повышенными привилегиями.

Обходной путь

Отфильтруйте список процессов и найдите интересующий вас PID:

tasklist | findstr /c:"PID"  


Альтернативное решение

Вместо этого можно использовать Tcpvcon.exe. Права администратора не требуются.

Tcpvconиспользование аналогично встроенной netstatутилите Windows.

Usage: tcpvcon [-a] [-c] [-n] [process name or PID]

 -a Show all endpoints (default is to show established TCP connections).
 -c Print output as CSV.
 -n Don't resolve addresses.

решение2

Я думаю, вы ищетеTCPПросмотриз SysInternals.

решение3

Вот пример использования Windows FORдля анализа netstatвыходных данных, а затем DO tasklistс /fiфильтром по pid для отображения имени процесса.

Последняя находка — удаление tasklistзаголовков.

FOR /F "usebackq tokens=5 delims= " %i IN (`netstat -ano ^|find "443"`) DO @tasklist /fi "pid eq %i" | find "%i"

печатает записи вывода как

tomcat8.exe.x64               4240 Services                   0    931,864 K

Дополнительные поля netstatможно добавить, добавив токены.

решение4

Попробуйте использовать это...

Имя процесса с отметкой времени :) в однострочнике... нет необходимости писать скрипты, быстро и просто...

Вы можете изменить параметр SYN_SENT на ESTABLISHED или LISTENING

filter timestamp {"$(Get-Date -Format G): $_"};netstat -abno 1 | Select-String -Context 0,1 -Pattern LISTENING|timestamp

filter timestamp {"$(Get-Date -Format G): $_"};netstat -abno 1 | Select-String -Context 0,1 -Pattern SYN_SENT|timestamp

Связанный контент