flapflapjack
@flapflapjack
на треть я прав

Как в Windows убить процесс, использующий определенный порт?

У юзеров часто виснет процесс одной из надстроек для Internet Explorer (ККМ АТОЛ), процесс - это вкладка в браузере. IE иногда не завершает зависший процесс даже если закрыть весь "браузер" целиком.

Процесс отслеживается командой:
netstat -ano | find /I "6220" | find /I "ESTABLISHED"


Результат выполнения этой команды:

TCP    10.32.0.34:60541       10.32.0.146:6220       ESTABLISHED     3520
, где 3520 - PID процесса.

Как можно модифицировать консольную команду, чтобы taskkill убил процесс с нужным пидом?
taskkill /f /im iexplore.exe делать не вариант, так как киляется весь браузер, а не вкладка, и юзерам приходится опять логиниться в каждой вкладке заново.

В винде это вообще возможно сделать? Если это имеет значение, то винда у юзеров стоит разная: от XP Professional, до 10 Professional.
  • Вопрос задан
  • 1762 просмотра
Решения вопроса 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
выдаст ошибку так как на вход в taskkill попадает не ПИД, а целая строка из netstat.
Команда SET может обрезать строку.

Или полностью:
@echo off
for /f "tokens=1 delims==" %%i in ('"netstat -ano | find /I "6220" | find /I "ESTABLISHED" "') do set var=%%i
taskkill /F /PID %var:~-4%
Ответ написан
wisgest
@wisgest
Не ИТ-специалист
for /f "tokens=5" %%P in (
		 'netstat -ano ^| find ":6220" ^| find /i "ESTABLISHED"'
) do  taskkill /f /pid %%P
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
@generalx
Системный администратор
sc queryx может сказать тоже многое
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы