Как проверить чем занят com порт windows 10

Как освободить или удалить привязки у назначенных, используемых или несуществующих COM портов в Windows

Когда вы подключаете к компьютеру новое COM или некоторые USB устройства (например, USB модем, мобильный телефон, Bluetooth адаптер, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему номер COM порта в диапазоне от 1 до 255 (COM1, COM2, COM3 и т.д.). При повторном подключении этого же устройств, ему назначается номер COM порта (Communication Port, или Serial port), зарезервированный за ним ранее. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптера Bluetooth, в системе появилось сразу 10
!!!!
новых COM портов).

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, и отказываются работать с COM100 и выше. Или видят только COM1-COM9 устройства. Что делать, если подключенное устройство получило высокий номер COM порта? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты?

Содержание:

  • Изменить номер COM порта устройства в Windows
  • Определяем процесс, который использует COM в Windows
  • Сброс назначенных COM портов Windows через реестр

Изменить номер COM порта устройства в Windows

В Windows можно вручную изменить номер COM порта, назначенный устройству. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить. Для этого:

  1. Откройте диспетчер устройств (Device Manager) командой devmgmt.msc;
  2. В меню выберите View->Show Hidden Devices;Отобразить скрытые устройства
  3. Затем разверните Ports (COM & LPT) и найдите в списке устройство;
  4. Перейдите на вкладку Port Settings и нажмите кнопку Advanced;
  5. Текущий номер COM порта, назначенный устройству указан в поле COM Port Number;
  6. Чтобы изменить его, раскройте выпадающий список и выберите номер COMпорта, который хотите задать.Изменить номер назначенного COM порта

Но чаще всего изменить номер COM порт на другой не получится, так как все «низкие» COM порт уже используются (in use);

  1. В этом случае нужно попробовать удалить резервацию COM порта за другим устройством. В ветке Ports (COM & LPT) найдите которому назначен нужный вам номер COM порта (бледная иконка означает, что данный COM порт назначен, но в сейчас это устройство не подключено);
  2. Щелкните по нему ПКМ и выберите Uninstall;Удаление отключенного COM устройства
  3. Теперь вы можете назначить освобожденный COM порт другому устройству. Еще раз откройте свойства вашего устройство, перейдите на вкладку Port Settings -> Advanced. Задайте свободный номер COM порта для вашего устройства.Смена COM порта

Однако такой способ позволяет освободить занятый COM порт не во всех случаях.

Вы можете вывести полный список занятых COM портов в Windows с помощью PowerShell:

Get-WMIObject Win32_SerialPort | Select-Object Name,DeviceID,Description

Можно определить номер COM порта для определённого устройства по его имени, например:
Get-WMIObject Win32_SerialPort | Where-Object { $_.Name -like "*Arduino*"}|select name, deviceid

Или
Get-WMIObject Win32_SerialPort | Where-Object { $_.Name -like "*GPS*"}|select name, deviceid

Определяем процесс, который использует COM в Windows

Вы не сможете освободить COM порт устройства, которое используется Windows или запущенной программой, процессом. Сначала вам нужно завершить процесс/программу, которая использует сейчас COM порт. Чтобы определить имя процесса, который использует COM порт понадобится утилита Process Explorer (https://docs.microsoft.com/en-gb/sysinternals/downloads/process-explorer).

Сначала нужно вывести имя службы, которая использует COM порт. Выполните команду PowerShell:

get-pnpdevice -class Ports -ea 0| Select Name, PNPDeviceID, Status, Service

powershell: получить название процессов и служб использующих COM порты в windows

Имя службы данного COM порта указано в столбце Service. Например, для COM2 это Serial. Теперь нужно запустить Process Explorer с правами администратора и выбрать в меню Find -> Find Handle or DLL. В строке Hangde or DLL substring введите значение Service, полученное ранее. В нашем примере это
Serial
.

Process Explorer должен показать процесс, который использует сейчас ваш COM порт. Чтобы освободить COM порт, завершите процесс или программу.

Process Explorer - ищем процесс или программу, которая используется com serial порт в windows

Сброс назначенных COM портов Windows через реестр

Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter

  1. Откройте редактор реестра (regedit.exe) и перейдите в указанную ветку.

    Важно! Настоятельно рекомендуем предварительно создать резервную копию данной ветки реестра (File -> Export). В том случае, если что-то пойдет не так, вы сможете вернуться к первоначальной конфигурации COM портов.

    COM Name Arbiter

  2. Значение параметра ComDB в двоичном формате определяет список COM портов, зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100);ComDB

    Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.

  3. Если нужно полностью сбросить все привязки COM, измените значение ключа ComDB на 0.Сбросить привязки COM портов

    Примечание. В разделе HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM можно увидеть полный список COM портов, доступных в Windows.В разделе HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM можно увидеться список COM портов, подключенных к системе.SERIALCOMM

  4. В ветке HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPorts содержится список назначенных COM портов. Все ненужные порты можно удалить (в нашем примере мы оставим только COM3 и удалим остальные);список COM портов в реестре
  5. Отключите все оборудование и перезагрузите Windows;
  6. После перезагрузки включите оборудование в нужном порядке (переустановите конверторы USB-to-serial и т.д.). Все обнаруженные COM-порты автоматически определяться системой и им будут последовательно выделены номера COM портов.

Также вы можете использовать следующие две бесплатные утилиты для очистки занятых (In Use) COM портов:

  • COM Name Arbiter Tool – утилита для освобождения занятых COM портов. Запустите утилиту с правами администратора, выберите COM порты, которые вы хотите освободить и нажмите Clear unused Reservations и Remove non-present devices;утилита COM Name Arbiter для очистки занятых COM портов в Windows
  • Device Cleanup Tool – утилита используется для поиска в реестре информации о ранее подключенных устройств (в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnum) и удаления неиспользуемых устройств и очистки резерваций COM портов.

Требования.
Статья применима для 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 устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.

Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).

В первую очередь стоит попробовать вручную переопределить номер COM порта для определенного COM-устройства. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить.

Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.

Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter

    Откройте редактор реестра (regedit) и перейдите в указанную ветку.


Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)

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

Самая распространённая проблема занятости порта встречается именно с портом номер 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 из командной строки, и тем самым легко узнаём, какой процесс, а следовательно — какая программа использует тот или иной порт. Итак, теперь Вы знаете, как проверить порты на предмет забитости, а это очень даже полезное умение в условиях большого количества программ, работающих в сети Интернет. Удачи!

В меню выберите «Run as Administrator» (на Windows XP вы можете просто запустить его как обычно), запустите netstat -anb , а затем просмотрите выходные данные для вашей программы. BTW, Skype по умолчанию пытается использовать порты 80 и 443 для входящих подключений.

Как узнать какие программы используют порты?

  1. Открываем командную строку: сочетание клавиш <Win +R> и вводим команду CMD.
  2. Запускаем tasklist и находим PID процесса.
  3. Для получения списка используемых портов воспользуемся утилитой командной строки netstat.

Как узнать какая программа слушает порт Windows?

Чаще всего это Skype, VMWare, и сборки веб-разработчиков, например XAMPP или OpenServer. Для поиска занимающих порты приложений можно воспользоваться приложениями, например SysInternals Process Explorer, Sysinternals TCPView, Nirsoft CurrPorts.

Как узнать какой ком порт?

  1. Убедиться в том, что многожильный кабель подключен к COM-порту
  2. Перейти в «Диспетчер устройств», расположенный в: Панель управленияОборудование и звукДиспетчер устройств (необходимы права администратора)
  3. Раскрыть дерево «Порты (COM и LPT)»

Как освободить COM порты?

разверните ветку Ports (COM & LPT) и в списке найдите устройство, которому назначен нужный COM порт (бледная иконка означает, что порт зарезервирован, но устройство не подключено). Щелкните по нему правой кнопкой мыши и выберите Uninstall; переназначьте освобожденный COM-порт другому устройству.

Как проверить порт 80 Windows 7?

Первая попытка: netstat

Чтобы узнать, кто именно работает с 80 портом в windows 7, нужно открыть от имени администратора консоль командной строки. Там, понадобится ввести команду вызова утилиты netstat с ключами –aobp для протокола tcp.

Как узнать какие порты использует игра?

  1. В окне командной строки наберите команду netstat -a (перед знаком минус не забудьте поставить пробел), нажмите Ввод. .
  2. Как видим, для каждого активного сокета указывается протокол, локальный и внешний адрес, а также состояние протокола.

Как отключить порты 80 и 443?

Если 80-й порт занят программой Skype, то освободить его еще проще, откройте инструменты — настройки — соединение снимите галочку «Для дополнительных входящих соединений следует использовать порты 80 и 443», нажмите сохранить.

Как посмотреть используемые порты Windows 10?

  1. Откройте командную строку от имени администратора.
  2. Как только вы попадете в командную строку с повышенными привилегиями, введите следующую команду: netstat -ab.

Что блокирует порты на компьютере?

Брандмауэр блокирует любые подозрительные и вредоносные соединения в зависимости от уровня угрозы. Пользователи могут настроить параметры брандмауэра Windows в соответствии с их необходимостью заблокировать или открыть порт в Windows 10 и других версиях.

Как посмотреть занятые порты Windows 10?

Откройте командную строку от имени администратора и введите netstat -ab . Это покажет список открытых портов с именем процесса. В списке будет указано имя исполняемого файла, который сделал запрос на прослушивание порта.

При подключении контроллера к компьютеру пишет что COM порт занят?

Имеется конструктор робота выполненный на контроллере STM связь осуществляется через UART-usb по чипу FTDI в диспетчере устройств все нормально. Запуская программу входящую в комплекте, пробуя подключиться выдает ошибку что COM порт занят. что можно сделать. 5a153f277bad2946124359.png5a153f2d354af346161715.png

Как определить какой com порт занят

Обнаружил такую бодягу.
Надо было подключить второй модем (Zyxel Com +) на COM2. Но винда XP кричит что он уже занят. Отключил модем, перезагрузился, подключил — тоже занят. Перезагружаюсь с подключеным. При загрузке винда находит PnP модем просит дрова, даю, устанавливается, но после полной загрузки — опять двадцать пять! Т.е. на каком-то этапе загрузки порт свободен, но какая-то корявка его занимает. Выключил всю автозагрузку (в т.ч. в реестре), остановил ненужные сервисы, рестарт — та же картина. Поубивал почти все процессы — не помогает.

Запарился ! Не могу определить какое приложение его захватило. Пробовал прикрутить «COM Sniffer» (он могет сервисом грузиться, причем можно указать после какого именно сервиса его грузить). Те же яйца — пишет что уже занят. В общем танцы с бубном ни к чему не привели. Все монопенисуально — порт кем-то занят и все.

Посоветуйте как побороть, может есть софт, который может определить какое приложение его аккупировало.?

RRS feed

  • Remove From My Forums
  • Общие обсуждения

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

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

Все ответы

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

  •  osr. написано:

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

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


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

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

    portmon /c

    Попробуйте запустить PortMon как сервис, используя утилиту Srvany.exe из Resouce Kit, или через планировщик Scheduled Tasks, указывая время запуска At system startup. Контролировать успешный запуск следует через Task Manager, окно программы при таких способах запуска не появится. После этого попробуйте подключиться с компьютера, на котором будет запущена серверная часть PortMon. Таким образом можно запустить PortMon до входа пользователя в систему, но насколько это поможет — не знаю. 

  • Утилита Process Explorer и поиск по строке Serial дает нам ссылку на процесс использующий файл типа DeviceSerial[X], где [X] — номер устройства в системе. Например  DeviceSerial0 — у меня указал на COM1.


Com порт традиционно используется для подключения к компьютеру устройств, которые нуждаются в последовательной передаче данных — по одному байту. Раньше так подключались мышь и клавиатура, теперь — источники бесперебойного питания и системы диагностики автомобилей. При установке некоторого программного обеспечения, связанного с Com портом, может появляться ошибка о том, что порт занят.

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

Вам понадобится

  • — компьютер;
  • — интернет;
  • — программа ProcessMonitor.

Инструкция

Чтобы решить данную проблему, нужно произвести некоторые настройки в системе. Нажмите кнопку «Пуск» в нижнем углу экрана и найдите пункт «Выполнить». Вы попадете в реестр компьютера. Наберите в строке команду cmd и нажмите ввод на клавиатуре. Запустится командная строка. Вводить команды нужно латинскими буквами.

Введите команду mode com1 и нажмите ввод на клавиатуре. Данная команда предназначена для задания свойств порта: скорости, длины, скорости и пр. В случае, если данный порт занят, утилита выдаст сообщение об этом в виде ошибки. Если порт свободен, система оповестит вас об этом. В данном меню можете настроить все параметры определенного порта на компьютере.

Чтобы узнать, какой программой занять com порт, зайдите на сайт sysinternals.com и загрузите программу ProcessMonitor в память компьютера. Как правило, подобное программное обеспечение должно устанавливаться в системный каталог локального диска на персональном компьютере. Запустите приложение. Нажмите на кнопку Find и наберите параметр DeviceSerial0, затем нажмите ввод на клавиатуре. Программе потребуется некоторое время (весьма незначительное) для выполнения задания.

Для com порта принято обозначение RS-232C. Скорость обмена данными по com порту обычно не более 115200 бит в секунду. В современной операционной системе этот порт используется как канал для передачи данных и называется COM1, COM2 и так далее. Некоторые устройства связи (такие как bluetooth) могут использовать название этого порта, чтобы иметь свое имя в системе. Также стоит отметить, что на многих компьютерах пользователям не хватает com портов. Для этого можно использовать специальные устройства под названием «ромашка».

Источники:

  • как узнать открыт ли у меня порт
  • Освобождаем 80-й и 443-й порты всеми

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Вернуться назад ОСНОВНОЙ ТЕКСТ СТАТЬИ

Версия для печати

Как определить каким процессом (программой) занят порт.

Требования.

Статья применима для 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 и в столбце «Имя образа«, смотрим какой
процесс занимает наш порт;

В нашем случаи это
Apache.exe

Комментарий ICaR-Soft.ru (13.07.2016 10:57)


БОЛЬШОЕ спасибо!

Комментарий MYcks (24.04.2016 13:33)


Просто и понятно объяснил. Спасибо!

Комментарий Яр (16.03.2016 13:05)


Отлично! Спасибо, очень помогло

Комментарий лИнивый (11.11.2015 17:18)


Ок спасибо! То что надо.

Комментарий zguzga (21.10.2015 17:56)


+1 большое спасибо!

Комментарий Alexstrigin (07.09.2015 20:55)


VELESTOR (26.08.2015 00:32)

Спасибо тебе добрый человек!!!

Комментарий VELESTOR (26.08.2015 00:32)


Открываем 80-тый порт в Windows 7, 8, 10 за 5 секунд, нужно всего лишь перекинуть http.sys c IPv4 на IPv6.
Инструкция http://velestor.com/q/port80/
У меня Windows 10, помог только этот способ!

Все для свадьбы

Like this post? Please share to your friends:
  • Как проверить частоту процессора windows 10
  • Как проверить частоту оперативной памяти на компьютере в windows 10
  • Как проверить установлена ли cuda windows
  • Как проверить установлен ли антивирус на ноутбуке windows 10
  • Как проверить частоту озу в windows 10