Блог
0 0 голоса
Рейтинг

В Windows при запуске сервисов может возникнуть конфликт портов, если нужный порт уже занят другим процессом. Например, IIS не запустится на порту 80, если он используется. В этой статье расскажем, как определить, какая программа прослушивает TCP или UDP порт, с помощью netstat, PowerShell, tasklist и как освободить порт.

Приобрести оригинальные ключи активации Windows 11 можно у нас в каталоге от 1690 ₽

Поиск программы по порту с помощью netstat

1. Выведите все прослушиваемые порты:


netstat -aon | find "LIST"

Параметры:

-a: показывает все подключения и порты.

-o: отображает PID процесса.

-n: числовой формат адресов и портов.

2. Найдите процесс по конкретному порту (например, 80):


netstat -aon | findstr ":80" | findstr "LISTENING"

Пример вывода: порт 80 занят процессом с PID 16124.

3. Определите программу по PID:


tasklist /FI "PID eq 16124"

Вывод покажет имя исполняемого файла (например, tiny.exe).

4. Однострочная команда:


for /f "tokens=5" %a in ('netstat -aon ^| findstr :80') do tasklist /FI "PID eq %a"

Поиск программы с помощью PowerShell

1. Найдите процесс для TCP-порта:


Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess

2. Найдите процесс для UDP-порта:


Get-Process -Id (Get-NetUDPEndpoint -LocalPort 53).OwningProcess

3. Завершите процесс:


Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess | Stop-Process

4. Проверьте, свободен ли порт:


Test-NetConnection localhost -Port 80

Поиск пути к исполняемому файлу

1. Поиск файла по имени:


cd \
dir tiny.exe /s /p

2. Использование where:


where /R C:\ tiny

Пример: найдено c:\Temp\tinyweb\tinyweb-1-94\tiny.exe.

Устранение неполадок

Порт не отображается:

– Убедитесь, что процесс запущен (netstat -aon).

– Проверьте права администратора для PowerShell.

Конфликт портов:

– Завершите процесс (Stop-Process) или измените порт сервиса (например, в настройках IIS).

Файл не найден:

– Проверьте правильность имени файла в tasklist.

– Используйте where для поиска по всему диску.

Рекомендации

Безопасность: Завершайте только известные процессы, чтобы не нарушить работу системы.

Мониторинг: Используйте Resource Monitor (resmon) для визуального анализа сетевых подключений.

Автоматизация: Создайте скрипт для проверки портов:


$port = 80
$process = Get-Process -Id (Get-NetTCPConnection -LocalPort $port -ErrorAction SilentlyContinue).OwningProcess
if ($process) { Write-Output "Port $port used by $($process.ProcessName) (PID: $($process.Id))" } else { Write-Output "Port $port is free" }

Логи: Проверяйте Event Viewer (eventvwr) для анализа ошибок портов.

Определение программы, использующей порт в Windows, возможно через netstat, tasklist или PowerShell (Get-NetTCPConnection, Get-NetUDPEndpoint). Эти инструменты позволяют быстро найти процесс, завершить его или освободить порт. Использование PowerShell упрощает автоматизацию и предоставляет гибкость для анализа сетевых подключений.

banner for Windows
Лицензионный ключ активации Windows от
1099 ₽ Купить
0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
0 отзывов
Межтекстовые Отзывы
Посмотреть все комментарии