Очистка занятых COM портов | Windows для системных администраторов

Очистка занятых COM портов

Каждый раз при подключении нового 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 порт уже занят, и мы хотим его попробовать его освободить.

  1. Запустим диспетчер устройств (Device Manager) таким образом:set devmgr_show_nonpresent_devices=1
    start devmgmt.mscdevmgr_show_nonpresent_devices
  2. В меню консоли выберем View->Show Hidden Devices.Отобразить скрытые устройства
  3. Разверните ветку Ports (COM & LPT) и в списке найдите устройство, которому назначен нужный COM порт (бледная иконка означает, что данный COM порт назначен, но в настоящий момент это устройство не подключено). Щелкните по нему ПКМ и выберите UninstallУдаление отключенного COM устройства
  4. Освобожденный COM порт может быть назначен другому устройству. Найдите в этой же ветке свое устройство, откройте окно его свойств (Properties). Затем перейдите на вкладку Port Settings и нажмите кнопку Advanced. В выпадающем списке выберите неиспользуемый COM порт.Смена COM порта

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

Сброс привязок COM портов через реестр


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

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

    COM Name Arbiter

  2. Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)ComDB
    Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.
  3. Если нужно полностью сбросить все привязки COM, измените значение ключа ComDB на 0.Сбросить привязки COM портов
    Примечание. В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеться список COM портов, подключенных к системе.SERIALCOMM
  4. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports содержится список назначенных COM портов. Все ненужные порты можно удалить (в нашем примере мы оставим только COM3 и удалим остальные.список COM портов в реестре
  5. Отключите все оборудование и перезагрузите ПК.
  6. После перезагрузки включите оборудование в нужном порядке (переустановите конверторы USB-to-serial и т.д.). Все обнаруженные COM-порты автоматически определяться системой и им будут последовательно выделены номера COM портов.
Еще записи по теме: Windows 7
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 12

Оставить комментарий
  1. Антон | 02.02.2016

    Уже года 4 как не видел компьютера с COM-портом, а вы тут COM устройства препарировать удумали

    Ответить
    • Andrew | 02.02.2016

      Антуан, уже года 4 как не видел компьютера с COM-портом, мучаюсь, приходится пользоваться переходниками, ПК же не только для вконтакта.

      Ответить
  2. Stanner | 14.02.2016

    Те, кто часто перепрошивает гаджеты на МТК, сталкивается с проблемой постепенно занимаемых COM-портов
    В данный момент я по прежнему с удовольствием пользуюсь двумя утилитами этого автора:
    — COM Name Arbiter Setter для освобождения портов
    — Device Cleanup Tool для очистки от старых неподключенных устройств

    Ответить
    • itpro | 15.02.2016

      Отличные утилиты, спасибо за подсказку!

      Ответить
    • Дима | 12.08.2016

      Большое спасибо за подсказку!!! Очень долго искал что то подобное)))

      Ответить
  3. Рейдер | 01.03.2016

    Имхо придется дописать, в 10ке по другому

    Ответить
    • itpro | 09.03.2016

      А вы опытом поделитесь, я с удовольствием его опубликую :)

      Ответить
  4. Валерий | 14.04.2016

    Здравствуйте, возможно ли привязать usb-сом переходник к конкретному сом порту? Периодически прыгает на другой порт и связь с устройством теряется.

    Ответить
    • Ильшат | 09.06.2016

      Не я один оказывается такой. Не нашли решение проблемы?

      Ответить
  5. Ильшат | 09.06.2016

    Добрый день.
    Проблема у меня с com портом, а точнее после каждой перезагрузки Сканер штрих кодов берет себе новый порт и каждый раз у пользователя в настройках 1С надо по новой указывать новый порт. У продавцов таких прав нет, так что приходится каждое утро самому это делать. Почему так происходит? Разные сканеры попробовал (одной и той же модель), все так же меняют. Кассовые аппараты и прочее оборудование нормально себя ведет. Может потому что питания не хватает? хотя пробовал цеплять сканер через USB HUB с доп питанием, все равно такая беда. Комп = моноблок. На других моноблоках нет проблем. Получается проблема в USB моноблока? как можно выйти из положения? Менять моноблок не вариант (
    Windows 7 x64 Pro

    Ответить
    • Ильшат | 09.06.2016

      Может как то можно жестко привязать com порт определенному девайсу?

      Ответить
      • itpro | 10.06.2016

        Попробуйте так:
        1) Определите Vendor ID (VID) и Product ID (PID) вашего USB хаба через через диспетчер устройств
        2) В реестре в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags создайте ключ IgnoreHWSerNumXXXXYYYY=hex:01, где XXXX = VID, а YYYY = PID
        3) Ребуут

        Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.26MB/0.00201 sec