Как узнать кто занял com порт windows

Как узнать кто занял com порт windows

Требования.
Статья применима для Windows 2000/XP/Vista/7.

Информация.
При установке некоторых программ иногда возникает проблема с доступностью порта. Т.е. вы устанавливаете программу, а она вам говорит: «Извините, но предпочитаемый порт номер занят!». И самое интересное программа не говорит чем или кем занят порт.

Как определить каким процессом (программой) занят порт.
1. В меню «Пуск» выберите пункт «Выполнить«;
2. В поле «Открыть» наберите команду cmd и нажмите кнопку «ОК»;

Откроется окно командной строки, примерно такого вида:

3. Наберите команду netstat -ano и нажмите кнопку «Ввод» (Enter) на клавиатуре;

Результатом выполнения данной команды, должен быть список всех активных подключений, с ip-адресами и номерами портов.

4. Теперь в колонке «Локальный адрес», находим нужный нам порт и записываем его идентификатор в колонке «PID»;

Например порт номер 80, его идентификатор 440.

5. Снова открываем меню «Пучк» и выбираем пункт «Выполнить«;
6. В поле «Открыть» вводим команду taskmgr и нажимаем кнопку «ОК»;
7. В окне «Диспетчер задач Windows» переходим на вкладку «Процессы«;
8. В главном меню открываем пункт «Вид» и выбираем пункт «Выбрать столбцы. «;
9. В окне «Выбор столбцов» находим пункт «Идентиф. процесса (PID)» и ставим рядом с ним галочку;
10. Нажимаем кнопку «ОК»;
11. Теперь в окне «Диспетчер задач Windows«, нажимаем на заголовок столбца «PID», для сортировки процессов по возрастанию;
12. Находим номер нашего процесса 440 и в столбце «Имя образа«, смотрим какой процесс занимает наш порт;

Как узнать кто занял com порт windows

Опытный

Группа: Пользователи
Сообщений: 442
Регистрация: 5.10.2009
Пользователь №: 17 793

Фронтол ругается «порт занят»?
Если сообщение «Порт недоступен», то его никто не захватил, порта просто нет в системе под таким номером.

Для просмотра программ, захвативших порт, можно попробовать использовать Process Explorer из набора утилит SystemInternals (они бесплатно распространяются на сайте microsoft).

У программы, использующей порт, будет отображаться использование ресурса типа «File» с именем «\Device\название порта»,
где название порта, это то, что отображает драйвер ККМ в поле выбора порта после надписи «COMn:».
Чтобы вручную не перебирать все запущенные сейчас процессы, можно воспользоваться встроенным в ProcessExplorer поиском (Find Handle or DLL), введя в строку поиска «\Device\»

Например,
запущен тест драйвера, настроено подключение к COM1 и стоит флаг «Устройство подключено».
Так как на моем ПК этот ком-порт обозначен в драйвере как «COM1: 0xser0», в ProcessExplorer для процесса Fprnm_T.exe будет видно использование файла «\Device\0xser0».

Читайте также:  Поменять пароль windows cmd

Начинающий

Группа: Пользователи
Сообщений: 78
Регистрация: 17.5.2010
Пользователь №: 21 435

После включения компа запускаю Frontol: «Ошибка ККМ Fprint 22: Порт недоступен ()!»

Запускаю Process Explorer, процессов \device\serial или других подобных не обнаруживается.

Выключаю Frontol (завершаю через диспетчер задач), в диспетчере устройств удаляю-добавляю COM1.

запускаю Frontol — все нормально, с Fprint связь есть.

и в Process Explorer теперь есть процесс FRONTOL.exe \device\serial0

Опытный

Группа: Пользователи
Сообщений: 442
Регистрация: 5.10.2009
Пользователь №: 17 793

Может быть при старте системы параметры порта некорректные и он не работает.
После удаления и добавления параметры исправляются, но при выключении системы не записываются и при следующей перезагрузке опять неверные.

Можно попробовать автоматизировать удаление/добавление порта в диспетчере устройств при старте фронтол утилитой DevCon.

Как проверить, какая именно программа работает с COM-портом компьютера

Сотрудники, офисы и COM-порты. Краткое введение в проблему

Иногда случается так, что при подключении сканера штрихкодов к программе Тирика-Магазин программа показывает сообщение об ошибке: Не могу открыть порт сканера штрихкодов: Отказано в доступе. Давайте разберемся, отчего такое может случиться.

С точки зрения Windows COM-порт, как и любой файл, флешка и т.п. является ресурсом. Любая программа, в т.ч. и сама Windows, может попросить у Windows доступ к какому-то ресурсу с определенными правами, и Windows может либо предоставить, либо не предоставить программе искомый доступ. Близкой аналогией здесь будет, наверное, офис с большим количеством комнат и кабинетов (ресурсов) и работающих в них сотрудников (программ). Если сотруднику для, например, переговоров с крупным клиентом потребуется отдельная комната, он попросит у секретаря организации дать ему ключ от этой комнаты и более никого туда не пускать до окончания переговоров. Если другой сотрудник попросит после этого у секретаря ключ от той же комнаты, ему будет отказано в доступе.

Точно так же дело обстоит и в мире программ. Если какой-то программе необходимо поработать с COM-портом, причем поработать так, чтобы ей никто в этом не мешал, программа просит Windows предоставить ей доступ к COM-порту и более никому этого доступа не предоставлять. Если после этого другая программа (например, программа Тирика-магазин) попросит у Windows доступа к (уже занятому) COM-порту, ей будет отказано в доступе.

Разумеется, это не единственная причина, по которой программе может быть отказано в доступе к COM-порту. Возвращаясь к нашей аналогии с офисом, сотруднику может быть отказано в доступе к какой-то комнате не только потому, что она занята другим сотрудником, но и потому, что эта комната, например, не существует или эта комната — кабинет директора. Однако при возникновении такой ситуации (программа Тирика-Магазин показывает на экране сообщение «Не могу открыть порт сканера штрихкодов: отказано в доступе») бывает нелишним проверить, что ни одна сторонняя программа не использует уже COM-порт в эксклюзивном режиме (сотрудник не занял комнату, на которую мы претендуем).

Читайте также:  Winmgmt что это за служба windows

Так как все-таки проверить, какая именно программа работает с COM-портом компьютера

Для этого нам нужно скачать и установить на компьютер специальную программу, называемую Process Explorer. Вообще, процессом в Windows называют запущенную и работающую программу, так что название этой программы можно перевести как Исследователь запущенных программ. Пожалуйста, скачайте эту программу и запустите на своем компьютере. Вначале программа предложит вам согласиться с лицензионным соглашением (нужно нажать кнопку Agree, что переводится как Согласен) и потом немедленно покажет вам список запущенных на компьютере процессов:

В этом окне нажмите, пожалуйста, сочетание клавиш Ctrl+F или выберите пункт меню Find | Find handle or DLL (Поиск | Искать хэндл или динамически подгружаемую библиотеку) для того, чтобы вызвать на экран окно поиска, в этом окне напишите слово Serial и нажмите кнопку Search (Искать). В ответ программа покажет вам список хэндлов (хэндлом в нашем примере про офис будет, наверное, запись о занятии комнаты у секретаря фирмы), в имени которых есть слово Serial («Последовательный». COM-порты также называются последовательными портами):

Разумеется, это не будет список программ, занявших ваш COM-порт. По аналогии с офисом, мы запустили функцию поиска в компьютере секретаря фирмы и ввели в нее название комнаты — в результатах поиска может быть не только записи о резервировании этой комнаты, но и, например, запись о том, что в эту комнату нужно купить шторы. Также вероятна ситуация, когда при наличии резервирования этой комнаты мы ничего не найдем функцией поиска, например, потому, что секретарь в своих записях называет эту комнату по-другому, например, вместо «A123» она называет ее «Левая переговорная».

Кроме того, нам необходимо суметь прочитать то, что нашла нам функция поиска. Вот, например, третья строчка на рисунке выше — это запись о занятии COM-порта или нет? На самом деле это запись совсем о другом событии, но для того, чтобы это понять, нужно быть компьютерным специалистом — а у большинства читающих эту статью совсем другие образование и профессия. Поэтому мы рекомендуем вам просто максимально расширить окно поиска так, чтобы туда поместились все присутствующие в нем строчки и все присутствующие в нем тексты, сделать снимок экрана получившегося окна и прислать этот снимок экрана нам с комментарием типа: Пытаюсь использовать программу Тирика-Магазин совместо со сканером штрихкодов, получаю сообщение об ошибке , снимок окна поиска программы ProcessExplorer прилагаю. Письмо нужно отправлять на .

Как вы понимаете, отсылка нам описанного выше снимка экрана — это не панацея и не волшебный способ исправить любую ошибку в программе — это всего лишь попытка найти программу, занявшую COM-порт. Если эта попытка окажется удачной, это будет означать, что проблема, наверное, будет решена; если же попытка окажется неудачной, то это вообще ничего не означает, так как, например, в списке секретаря эта комната может называться иначе. Но ведь попытка не пытка, как говорил известный исторический персонаж? 😉

Читайте также:  Windows как запустить службу аудио ошибка 1068

Как узнать кто занял com порт windows

Общие обсуждения

Как можно определить (не методом тыка) какой процесс посмел занять нужный мне COM-порт (например СОМ1)?

  • Изменен тип Vinokurov Yuriy Moderator 6 августа 2010 г. 8:38 давность и отсутствие активности в теме

Все ответы

Утилита PortMon от Sysinternals (в настоящее время — подразделение Microsoft).

Утилита PortMon от Sysinternals (в настоящее время — подразделение Microsoft).

Попробывал PortMon, но она безполезна, насколько я понял, если какой-то драйвер занял порт до того как был запущен PortMon, то эта утилита не определит кто это был и не покажет, что порт занят и кем. Куда её засунуть, чтоб она (утилита) запускалась раньше всех?

Действительно, утилита PortMon должна быть запущена до того, как тот или иной процесс захватит com-порт. Попробую предложить следующий workaround. PortMon может работать в клиент-серверной конфигурации, когда на анализируемом компьютере запускается клиентская часть, а сбор данных происходит по сети на другом компьютере. Посмотрите справку по PortMon для более детальной информации.

В этом случае на компьютере следует запустить клиентскую часть, выполнив команду

Как проверить, чем занят порт?

Однако именно забитость портов является одной из первостепенных причин некорректной работы сети: зависаний, торможений, «лагов». Каждая из программ хоть и использует свой порт, но порой несколько программ пересекаются в одном из них, и случается своего рода «затык». Как обнаружить пресловутый «затык» — расскажем далее. Самая распространённая проблема занятости порта встречается именно с портом номер 80 — одним из самых основных маршрутов у многих программ.

Итак, нам нужна наша любимая командная строка. Вызывается она через меню «Выполнить», которое, в свою очередь, вызывается комбинацией горячих клавиш Windows+R. В меню «Выполнить» вводим cmd — мы в командной строке.

Здесь нам необходима команда netstat -ano (прописываем именно так, с пробелом перед дефисом и без пробела без него!).

Мы увидим множество локальных адресов. все они имеют примерный вид xxx.xxx.x.xxx:PORT. Да, порт прописывается после двоеточия.

Выбираем конкретный порт, проводим пальцем до последнего столбца и узнаем ID процесса. Запоминаем число ID. На этом работа с командной строкой закончена.

Запускаем диспетчер задач (как его вызвать, знают все: Ctrl+Alt+Del или Ctrl+Shift+ESC).

Если вы используете систему Windows 8/8.1, то ID прописываются изначально во вкладке «Подробности». Если же Ваша OS — Windows 7 или ниже, то для начала идём в меню «Вид», выбираем пункт «Выбрать столбцы» и ставим галочку напротив PID.

Подтвердив изменения, мы увидим столбец с ID. Ищем число ID из командной строки, и тем самым легко узнаём, какой процесс, а следовательно — какая программа использует тот или иной порт. Итак, теперь Вы знаете, как проверить порты на предмет забитости, а это очень даже полезное умение в условиях большого количества программ, работающих в сети Интернет. Удачи!

Оцените статью