Очистка невидимых COM-портов на Windows 7

Полное руководство по очистке невидимых COM-портов на Windows 7: отображение скрытых устройств, удаление через переменную окружения, ручная очистка реестра и автоматизация через скрипты.

Очень распространённая проблема на Windows 7 (и не только) — «зависшие» или невидимые COM-порты, которые мешают корректной работе оборудования (особенно USB-to-COM адаптеров, модемов, плат программирования и пр.). Такие порты не отображаются в диспетчере устройств, но система их считает занятыми, из-за чего новые устройства получают «COM5», «COM17» и так далее, или не работают вовсе.

В этой статье мы подробно разберем процесс очистки всех невидимых или «залипших» COM-портов на Windows 7.

1. Показать скрытые устройства в диспетчере устройств

Первым шагом является открытие диспетчера устройств с опцией отображения скрытых устройств.

Откройте Панель управления → Система → Диспетчер устройств.

В меню выберите: Вид → Показать скрытые устройства.

Теперь в разделе Порты (COM и LPT) и USB controllers появятся "серые" устройства — это те, которые были когда-то подключены, но сейчас их нет.

Важно: По умолчанию, даже с этой опцией, часть портов остаётся скрыта.

2. Удаление скрытых COM-портов через переменную окружения

Чтобы видеть все когда-либо подключённые устройства (не только серые), выполните следующие действия:

Откройте командную строку с правами администратора.

				
					set devmgr_show_nonpresent_devices=1 start devmgmt.msc
				
			

Снова выберите в диспетчере: Вид → Показать скрытые устройства.

Теперь вы увидите все "висячие" порты и устройства, даже те, что никогда не отображались.

Удаляйте все лишние устройства из раздела Порты (COM и LPT) (кликайте правой кнопкой → "Удалить").

3. Очищаем реестр вручную (глубокая очистка)

Если после этого всё равно остались неосвобождённые номера портов или система упрямо предлагает всё новые COMxx, нужно почистить реестр:

Внимание! Все действия с реестром выполняйте только если понимаете, что делаете. Лучше сделать резервную копию!

Откройте редактор реестра: Win+R и вводим regedit

Перейдите по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter

Найдите параметр ComDB.

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

Либо изменить вручную, если требуется оставить какие-то номера занятыми.

4. Перезагрузка

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

5. Альтернативно: Сторонние утилиты

Если не хочется возиться руками, можно воспользоваться бесплатными утилитами, например:

  • COM Name Arbiter Tool — ищите на странице
  • Device Cleanup Tool — удобно чистит все старые «висячие» устройства (рекомендую!)