Когда вы подключаете к компьютеру новое 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 порт уже занят, и мы хотим его попробовать его освободить. Для этого:
- Откройте диспетчер устройств (Device Manager) командой devmgmt.msc;
- В меню выберите View->Show Hidden Devices;
- Затем разверните Ports (COM & LPT) и найдите в списке устройство;
- Перейдите на вкладку Port Settings и нажмите кнопку Advanced;
- Текущий номер COM порта, назначенный устройству указан в поле COM Port Number;
- Чтобы изменить его, раскройте выпадающий список и выберите номер COMпорта, который хотите задать.
Но чаще всего изменить номер COM порт на другой не получится, так как все «низкие» COM порт уже используются (in use);
- В этом случае нужно попробовать удалить резервацию COM порта за другим устройством. В ветке Ports (COM & LPT) найдите которому назначен нужный вам номер COM порта (бледная иконка означает, что данный COM порт назначен, но в сейчас это устройство не подключено);
- Щелкните по нему ПКМ и выберите Uninstall;
- Теперь вы можете назначить освобожденный COM порт другому устройству. Еще раз откройте свойства вашего устройство, перейдите на вкладку Port Settings -> Advanced. Задайте свободный номер 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
Имя службы данного COM порта указано в столбце Service. Например, для COM2 это Serial. Теперь нужно запустить Process Explorer с правами администратора и выбрать в меню Find -> Find Handle or DLL. В строке Hangde or DLL substring введите значение Service, полученное ранее. В нашем примере это
Serial
.
Process Explorer должен показать процесс, который использует сейчас ваш COM порт. Чтобы освободить COM порт, завершите процесс или программу.
Сброс назначенных COM портов Windows через реестр
Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter
- Откройте редактор реестра (regedit.exe) и перейдите в указанную ветку.
Важно! Настоятельно рекомендуем предварительно создать резервную копию данной ветки реестра (File -> Export). В том случае, если что-то пойдет не так, вы сможете вернуться к первоначальной конфигурации COM портов.
- Значение параметра ComDB в двоичном формате определяет список COM портов, зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100);
Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.
- Если нужно полностью сбросить все привязки COM, измените значение ключа ComDB на 0.
Примечание. В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеть полный список COM портов, доступных в Windows.В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеться список COM портов, подключенных к системе.
- В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports содержится список назначенных COM портов. Все ненужные порты можно удалить (в нашем примере мы оставим только COM3 и удалим остальные);
- Отключите все оборудование и перезагрузите Windows;
- После перезагрузки включите оборудование в нужном порядке (переустановите конверторы USB-to-serial и т.д.). Все обнаруженные COM-порты автоматически определяться системой и им будут последовательно выделены номера COM портов.
Также вы можете использовать следующие две бесплатные утилиты для очистки занятых (In Use) COM портов:
- COM Name Arbiter Tool – утилита для освобождения занятых COM портов. Запустите утилиту с правами администратора, выберите COM порты, которые вы хотите освободить и нажмите Clear unused Reservations и Remove non-present devices;
- Device Cleanup Tool – утилита используется для поиска в реестре информации о ранее подключенных устройств (в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum) и удаления неиспользуемых устройств и очистки резерваций COM портов.
Утилита для проверки COM портов
Утилита проверяет доступность всех COM портов. Если порт занят, может определить какой процесс его использует и при необходимости, чтобы получить доступ к порту, завершить его.
Функция «Освободить порт» закрывает дескриптор порта, открытый использующим его приложением, в результате чего можно получить к нему доступ, но может привести к нестабильной работе этого приложения.
Некоторые процессы, например служба EoU, контролируют постоянный доступ к порту и автоматически переоткрывают его, в случае такого разрыва связи.
Размер: 1.3 MB, дата: 22 Янв. 2024
Размер: 1.3 MB, дата: 09 Май. 2024
Environment
Environment shows products that are verified to work for the solution described in this article. This solution might also apply to other similar products or applications.
In this article, it will be explained how to find which process is reserving a Serial port (COM). This procedure can be helpful to troubleshoot issues like the Error -1073807246, where a resource is valid, but VISA can’t access it.
To find the process which is using the Serial port (COM), follow the steps below.
- Download the Process Explorer tool from Microsoft.
- Open Device Manager and expand Ports (COM & LPT). Right click on the target serial port and select Properties.
- Select the Details tab and change the value in the Property field to Service, as shown in the image below, and note the service value for searching in Process Explorer.
It is worth mentioning that NI-Serial devices use the service NiSerU, while built-in ports use the service Serial.
- Open Process Explorer. You will see a screen similar to the image below.
- Select Find » Find Handle or DLL… in the menu.
- In the Handle or DLL substring field, type in the value that was obtained from Device Manager. In this example, we type in NiSerU.
- Click Search and the results will populate to show which process is using a the particular handle. In this example, the USB-232 shows as \Device\NiSerU1 being used by NIMax.exe.
Was this information helpful?
В операционной системе Windows 10 использование COM портов (последовательных портов) часто требуется для подключения различных устройств, таких как модемы, принтеры или специализированные инструменты. Иногда важно понять, занят ли конкретный COM порт, чтобы избежать конфликтов и корректно настроить оборудование.
Для начала, чтобы проверить статус COM порта, необходимо использовать встроенные средства Windows. Самый простой способ – это обратиться к «Диспетчеру устройств». Он отображает все активные и подключенные устройства, включая порты. В разделе «Порты (COM и LPT)» вы увидите список доступных портов и их текущий статус. Если рядом с портом указан знак восклицания или устройство отображается с ошибкой, это может указывать на то, что порт занят или неправильно настроен.
Другим важным шагом является использование командной строки или PowerShell для получения более детальной информации о текущем состоянии COM порта. Например, можно выполнить команду mode в командной строке, чтобы получить список всех активных последовательных портов и их текущую конфигурацию. Это поможет точно понять, не используется ли порт другим приложением или устройством.
Если COM порт занят другим приложением, возможно, потребуется закрыть это приложение или перезагрузить компьютер. В случае, если устройство подключено, но порт не отображается в «Диспетчере устройств», может потребоваться обновление драйверов или ручная настройка конфигурации порта через системные параметры.
Проверка использования COM порта через Диспетчер устройств
Для проверки состояния COM порта в Windows 10 откройте Диспетчер устройств. Нажмите правой кнопкой мыши на кнопку «Пуск» и выберите «Диспетчер устройств». В окне, которое откроется, найдите раздел «Порты (COM и LPT)». Здесь отображаются все доступные COM порты, их номера и описание.
Если порт используется, он будет отображаться в списке как «USB-SERIAL CH340 (COMx)» или аналогичное название в зависимости от подключенного устройства. В случае, если устройство не функционирует, в правой части строки будет отображаться значок с восклицательным знаком, который указывает на наличие проблем с портом или драйверами.
Щелкнув правой кнопкой мыши на нужном порте, выберите «Свойства». В разделе «Состояние устройства» отобразится информация о текущем состоянии порта, включая информацию о возможных ошибках. Если порт заблокирован другим приложением или устройством, здесь также будет указано соответствующее уведомление.
Если нужно освободить порт, закройте программу, которая его использует, или отключите устройство. При этом в окне «Свойства» COM порта должна исчезнуть информация о его блокировке. В некоторых случаях поможет перезагрузка компьютера.
Использование командной строки для диагностики COM порта
Для того чтобы проверить статус конкретного COM порта, откройте командную строку и выполните команду:
mode
Эта команда отобразит список всех доступных портов, их текущие настройки и состояние. Важно обратить внимание на параметры, такие как скорость передачи данных (Baud rate) и другие настройки, которые могут указывать на использование порта в данный момент.
Если порт занят, возможно, вы увидите информацию о процессе, который использует этот порт. Чтобы узнать более детально, какой именно процесс захватил COM порт, используйте команду tasklist
в сочетании с find
, чтобы найти процесс по его идентификатору (PID):
tasklist | find "PID"
Замените «PID» на номер идентификатора процесса, который использует COM порт. Это поможет найти конкретное приложение, которое заблокировало доступ к порту.
Если вы не видите информации о порте или подозреваете, что порт может быть заблокирован драйверами, можно воспользоваться командой devmgmt.msc
для открытия диспетчера устройств, где можно проверить состояние драйверов, обновить их или отключить и снова подключить устройство для устранения возможных проблем с COM портом.
Для дополнительной диагностики используйте утилиту mode COMx
, где x
– номер порта. Это покажет текущие настройки, такие как параметры передачи данных и статус соединения.
В случае, если COM порт не реагирует на команды или продолжает оставаться заблокированным, рекомендуется перезагрузить систему или выполнить команду для отключения порта, например, через диспетчер устройств, чтобы освободить порт для других приложений.
Методы поиска конфликтов с другими устройствами через Диспетчер устройств
Чтобы найти конфликты с другими устройствами через Диспетчер устройств, откройте его, нажав Win + X и выбрав «Диспетчер устройств». В списке устройств найдите раздел «Порты (COM и LPT)» и разверните его. Если COM порт занят или конфликтует с другим устройством, рядом с его названием будет отображаться иконка с восклицательным знаком или ошибка.
1. Идентификация ошибок через статус устройства: Выберите нужный COM порт, кликните правой кнопкой мыши и выберите «Свойства». В разделе «Общие» вы увидите статус устройства. Если устройство работает корректно, будет указано «Это устройство работает нормально». Если имеется конфликт, появится описание ошибки, например «Этот ресурс уже используется».
2. Проверка кодов ошибок: В случае конфликта в «Свойствах» будет указан код ошибки, например, код 10 (устройство не может быть запущено) или код 43 (драйвер устройства не может быть загружен). Эти коды можно использовать для поиска решения проблемы через справочные ресурсы Microsoft или форумы.
3. Проверка конфликтов ресурсов: Вкладка «Ресурсы» в свойствах порта покажет, если порт использует тот же ресурс (например, IRQ или память), что и другое устройство. Это важно для устранения конфликтов между устройствами, которые могут мешать корректной работе COM порта.
4. Обновление драйверов: В Диспетчере устройств можно попробовать обновить драйверы для устройства, вызывающего конфликт. Для этого нужно щелкнуть правой кнопкой мыши на порте и выбрать «Обновить драйвер». Это помогает решить проблемы, связанные с несовместимостью драйверов.
5. Отключение других устройств: Если порт не освобождается, попробуйте временно отключить другие устройства, которые могут использовать аналогичные ресурсы. Это можно сделать в Диспетчере устройств, выбрав нужное устройство и отключив его.
6. Проверка других COM портов: Иногда проблемы с одним портом могут возникать из-за неправильной настройки или конфликта в системе. Попробуйте назначить другое значение для COM порта, что также можно сделать в «Свойствах» устройства, выбрав «Изменить настройки порта».
Как узнать занятость COM порта с помощью программы «Система» в Панели управления
Для того чтобы проверить, занят ли COM порт в Windows 10, можно воспользоваться встроенной программой «Система» в Панели управления. Этот метод позволяет быстро увидеть информацию о подключенных устройствах и их портам без использования сторонних утилит.
Для начала откройте Панель управления. Это можно сделать, набрав «Панель управления» в строке поиска в меню «Пуск». В открывшемся окне перейдите в раздел Система и безопасность, а затем выберите Система.
В разделе «Система» найдите ссылку Диспетчер устройств и нажмите на нее. Откроется окно, где отображаются все устройства, подключенные к вашему компьютеру. В левой части окна найдите раздел Порты (COM и LPT). Здесь будут перечислены все доступные COM порты, а также указаны активные устройства, которые используют эти порты.
Если порт в данный момент используется, рядом с его номером будет отображаться информация о подключенном устройстве. Например, можно увидеть название подключенного устройства или модема, что указывает на его активное использование. Если устройство не подключено или порт не используется, рядом с его номером будет стоять надпись «Свободен».
Также в Диспетчере устройств вы можете щелкнуть правой кнопкой мыши на конкретном COM порте и выбрать пункт Свойства, чтобы получить более подробную информацию о состоянии порта и его использовании.
Таким образом, используя встроенные инструменты Windows 10, вы можете легко проверить занятость COM порта, не устанавливая дополнительные программы.
Использование сторонних утилит для мониторинга состояния COM порта
Для более детального мониторинга состояния COM портов в Windows 10, помимо встроенных средств операционной системы, можно воспользоваться сторонними утилитами. Эти инструменты предоставляют дополнительные возможности для отслеживания и диагностики работы портов, что особенно полезно для пользователей с повышенными требованиями к точности и функциональности.
Вот несколько популярных утилит для работы с COM портами:
- Advanced Serial Port Monitor – мощный инструмент для отслеживания активности COM портов в реальном времени. Он позволяет записывать данные, передаваемые через порты, и отображать статистику по каждому из них. Утилита поддерживает работу с несколькими портами одновременно, что удобно для тестирования устройств, использующих сериальные порты.
- PuTTY – хотя PuTTY чаще используется для работы с SSH и Telnet, эта утилита поддерживает подключение к COM портам. Она может быть полезна для установления серийных соединений и тестирования связи с внешними устройствами через COM порты. Простой интерфейс и легкость в настройке делают её хорошим выбором для повседневного использования.
- RealTerm – специализированная утилита для работы с COM портами, которая поддерживает работу с различными типами данных, включая текст, бинарные файлы и логирование. RealTerm идеально подходит для отладки устройств, использующих последовательные порты, так как позволяет детально анализировать передаваемые данные и их формат.
- Serial Port Monitor – эта утилита предлагает богатый функционал для мониторинга состояния COM портов, включая возможность записи и анализа данных, а также отображение статистики о передаче информации. Она поддерживает работу с несколькими портами и может быть использована для диагностики и тестирования работы устройств.
Использование сторонних утилит даёт несколько преимуществ по сравнению с базовыми средствами Windows:
- Поддержка записи и анализа данных, передаваемых через COM порты.
- Возможность работы с несколькими портами одновременно для комплексной диагностики.
- Продвинутые функции логирования, позволяющие отслеживать ошибки и сбои в реальном времени.
- Поддержка различных форматов данных для более гибкой настройки инструментов под конкретные задачи.
Рекомендуется использовать сторонние утилиты для более точной диагностики и мониторинга COM портов, особенно в случае работы с устройствами, требующими высокой стабильности и контроля за состоянием соединения.
Как освободить COM порт при его занятости другими процессами
Когда COM порт занят другим процессом, это может привести к сбоям в работе приложений, которые пытаются получить доступ к этому порту. Чтобы освободить порт, следуйте пошаговой инструкции.
- Откройте «Диспетчер устройств». Для этого нажмите правой кнопкой мыши на меню «Пуск» и выберите «Диспетчер устройств».
- Найдите раздел «Порты (COM и LPT)» и разверните его. Здесь вы увидите все доступные COM порты.
- Если рядом с COM портом отображается восклицательный знак или порт отображается как недоступный, это может указывать на занятие порта другим процессом. Щелкните правой кнопкой мыши на проблемном порте и выберите «Отключить устройство».
- Перезагрузите компьютер, чтобы система очистила возможные блокировки. Иногда это может помочь устранить проблему с блокированным портом.
- Если проблема сохраняется, используйте инструмент «Монитор ресурсов». Перейдите в «Диспетчер задач» (Ctrl + Shift + Esc), затем откройте вкладку «Производительность» и нажмите на «Монитор ресурсов». В разделе «Сетевые порты» вы сможете увидеть, какие процессы используют COM порты.
- Используйте сторонние утилиты для управления портами, такие как «PortMon» или «Process Explorer». Эти программы помогут найти и освободить порт, который занят неизвестным процессом.
- Если порт используется драйвером, попробуйте обновить или переустановить драйвер устройства. Перейдите в «Диспетчер устройств», щелкните правой кнопкой на нужный драйвер и выберите «Обновить драйвер» или «Удалить устройство» для повторной установки.
Если ни один из методов не помогает, возможно, существует программная ошибка или несовместимость. В таком случае стоит обратиться в техническую поддержку производителя устройства.
Вопрос-ответ:
Как узнать, занят ли COM порт в Windows 10?
Чтобы проверить, занят ли COM порт в Windows 10, откройте «Диспетчер устройств». Найдите раздел «Порты (COM и LPT)» и посмотрите, есть ли рядом с нужным COM портом значок, который может указывать на его использование. Если порт работает нормально, то рядом не будет предупреждающих значков, таких как восклицательный знак. В случае проблем можно попробовать перезагрузить компьютер или использовать другие методы диагностики.
Какие признаки могут указывать на то, что COM порт в Windows 10 занят другим устройством?
Когда COM порт занят другим устройством, операционная система может выдать ошибку при попытке подключить новое устройство. Вы также можете заметить, что в «Диспетчере устройств» указано, что порт не доступен или работает с ошибками. В некоторых случаях программа, пытающаяся использовать порт, может выдать сообщение об ошибке, связанное с невозможностью захвата порта, что также указывает на его занятость.
Что делать, если COM порт занят и невозможно его использовать?
Если COM порт занят и вы не можете его использовать, первым шагом будет перезагрузка системы. Если это не помогло, попробуйте открыть «Диспетчер устройств», найти проблемный порт и удалить его, а затем перезагрузить компьютер, чтобы Windows автоматически установила драйвер для порта заново. Также стоит проверить, не используется ли порт другими приложениями или устройствами. Иногда помогает отключение других подключенных устройств или отключение программ, использующих данный порт.
Как можно проверить занятость COM порта с помощью командной строки?
Для проверки занятости COM порта через командную строку можно использовать утилиту «mode». Откройте командную строку и введите команду «mode». В ответ вы получите список всех доступных портов и их состояния. Если нужный порт отображается в списке, значит, он свободен. Если он занят, то он либо не отобразится в списке, либо будет показывать ошибку, связанную с его занятостью.
Как изменить COM порт в Windows 10, если он занят?
Чтобы изменить COM порт в Windows 10, если текущий занят, откройте «Диспетчер устройств», найдите раздел «Порты (COM и LPT)», кликните правой кнопкой по нужному порту и выберите «Свойства». В окне свойств перейдите на вкладку «Параметры порта», затем выберите кнопку «Изменить номер порта». Выберите свободный номер порта из списка и нажмите «OK». Это может помочь, если COM порт занят другим устройством или программой.
Как проверить, занят ли COM порт в Windows 10?
Для того чтобы проверить, занят ли COM порт в Windows 10, откройте «Диспетчер устройств». Для этого нажмите правой кнопкой мыши на значок «Пуск» и выберите «Диспетчер устройств». В списке устройств найдите раздел «Порты (COM и LPT)». Если COM порт занят каким-то устройством, он будет отображаться в этом разделе с указанием номера порта, например, COM1, COM2 и так далее. Если устройство не работает или не подключено, рядом с портом может быть значок восклицательного знака, который указывает на проблему. Также можно воспользоваться специальными программами для мониторинга, которые покажут, какие порты в данный момент активны.
Содержание
- Как проверить использование портов компьютера через Windows 10
- Использование портов – метод командной строки
- Проверка портов в TCPView
- Как узнать какой порт использует программа
- Определения порта программы стандартными средствами Windows
- Поиск идентификатора процесса PID
- Поиск порта процесса
- Программы для просмотра сетевых соединений
- TCPView
- CurrPorts
- Как узнать, какие TCP/IP-порты используют приложения Windows
- Встроенные инструменты контроля портов
- Просмотр портов вместе с именами процессов
- Просмотр портов вместе с идентификаторами процессов
- Использование NirSoft CurrPorts
- Blog of Khlebalin Dmitriy
- (Дорогу осилит идущий…)
- Процессы и порты Windows.
- Чем занят com порт windows 10
Как проверить использование портов компьютера через Windows 10
В любой момент между вашим ПК с Windows 10 и бесконечной пустотой Интернета передаётся огромное количество информации. Это делается с помощью технологий, посредством которых зависящие от сети процессы ищут свободные «порты» TCP и UDP для «общения» с Интернетом. Сначала ваши данные отправляются на удаленные порты пункта назначения или на веб-сайт, к которому ваши процессы пытаются подключиться, а затем они возвращаются на локальные порты обратно на ваш компьютер.
В большинстве случаев Windows 10 знает, как управлять портами и обеспечивать направление трафика через правильные порты, чтобы эти процессы могли подключаться к тому, что им нужно. Но, иногда два процесса могут быть назначены одному порту или вы, может быть, просто хотите получить лучшее представление о своём сетевом трафике и о том, что входит и выходит.
Вот почему мы решили написать это руководство, которое покажет вам, как получить обзор ваших портов и посмотреть, какие приложения какие порты используют.
Использование портов – метод командной строки
Вероятно, самый простой способ узнать, какой порт каким процессом используется, – это использовать надежную командную строку.
Большинство из адресов начинаются со 127.0.0.1. Этот IP-адрес иначе известен как «localhost» или «адрес обратной связи», и любой процесс, прослушивающий порты, взаимодействует внутри вашей локальной сети без использования какого-либо сетевого интерфейса. Фактический порт – это номер, который вы видите после двоеточия.
Большая часть процессов, вероятно, будет прослушивать порты с префиксом «192.168.xxx.xxx», который является вашим IP-адресом. Это означает, что процессы, которые вы видите в списке, прослушивают сообщения из удаленных Интернет-узлов (например, веб-сайтов). Опять же, номер порта – это номер после двоеточия.
Проверка портов в TCPView
Если вы не против установки стороннего приложения и хотите иметь больший контроль над тем, что происходит со всеми вашими портами, вы можете использовать легкое приложение под названием TCPView. Оно почти мгновенно выводит список процессов и связанных с ними портов.
В чём TCPView превосходит командную строку, так это в том, что вы можете активно видеть, как порты открываются, закрываются и отправляют пакеты. Просто обратите внимание на зеленые, красные и желтые блики. Вы также можете изменить порядок списка, щелкнув заголовки столбцов, что упростит поиск нужного процесса или отдельных процессов, соперничающих за один и тот же порт.
Если вы найдёте процесс или соединение, которое хотите закрыть, просто щелкните этот процесс правой кнопкой мыши. Затем вы можете выбрать «Завершить процесс», что является той же функцией, что и в диспетчере задач Windows. Или вы можете нажать «Закрыть соединение», чтобы оставить процесс открытым, но не давать ему прослушивать данный порт.
Источник
Как узнать какой порт использует программа
На компьютере может быть установлено довольно много программ и все они резервируют в операционной системе определенный порт для взаимодействия с другим программным обеспечением по сети. В большинстве случаев пользователь заранее знает какой порт использует программа. Это может быть официально зарезервированный порт, под определенный сетевой протокол. Например почтовые программы используют для приема почты протокол POP3 и резервируют порт 110. Бывают неофициально резервируемые порты, например порт 1540 используемый агентом сервера 1С:Предприятие. Информацию об используемых неофициальных портах разработчики программного обеспечения указывают в документации.
Определения порта программы стандартными средствами Windows
Поиск идентификатора процесса PID
1. Открываем командную строку: сочетание клавиш и вводим команду CMD.
2. Запускаем tasklist и находим PID процесса.
Если необходимо отобразить полный список процессов, в том числе служебных и системных, необходимо использовать tasklist без аргументов.
Команда tasklist /fi «status eq running» найдет только те процессы, которые были запущенны программами. Это сократит список процессов и облегчит поиск.
Находим в списке нужную программу, например OneDrive.exe и запоминаем соответствующий PID.
Поиск порта процесса
Для получения списка используемых портов воспользуемся утилитой командной строки netstat.
B netstat были использованы слtдующие аргументы:
В результате будет получен довольно крупный список активных сетевых соединений, среди которых необходимо найти соединение с нужным PID.
В найденных результатах видно, что процесс c PID 15304 (программа OneDrive.exe) использует несколько сетевых портов: 11906, 11907, 11908.
Обращайте внимание на то, для какого траспортного протокола открыт порт: ТСР или UDP. Это информация будет важна, когда будете пробрасывать порт через межсетевой экран.
Программы для просмотра сетевых соединений
Этот способ подойдет для тех, кто не хочет погружаться в работу утилит командной строки Windows, а желает быстро и просто получить информацию о портах, которые использует программа, в графическом интерфейсе.
TCPView
CurrPorts
Из плюсов программы следует отметить наличие русского языка. Чтобы русифицировать программу нужно скачать отдельный файл русификации и положить его в папку с программой.
Источник
Как узнать, какие TCP/IP-порты используют приложения Windows
IP-адрес указывает на компьютер или другое сетевое устройство. Когда одно устройство отправляет трафик другому, IP-адрес используется для маршрутизации трафика в соответствующее место. Как только трафик достигнет нужного места, устройство должно знать, какое приложение или сервис отправляет трафик.
Если IP-адрес сродни почтовому адресу, порт является чем-то вроде имени человека по этому месту жительства, который получает почту. По большей части вам не нужно беспокоиться о портах. Но время от времени вы можете столкнуться с приложением, которое настроено на прослушивание трафика на том порту, который уже использует другое приложении. В этом случае вам нужно будет определить приложение, которое уже использует этот порт.
Существует несколько способов узнать, какое приложение блокирует порт, но мы собираемся пройти через пару встроенных способов, которые используют командную строку, а затем показать вам отличное бесплатное приложение, которое упростит работу, Все эти методы должны работать независимо от того, какую версию Windows вы используете.
Встроенные инструменты контроля портов
Мы предлагаем две команды, чтобы показать список. В первом списке отображаются активные порты вместе с именем процесса, который их использует. В большинстве случаев эта команда будет работать нормально. Иногда, однако, имя процесса не поможет вам определить, какое приложение или служба фактически использует порт. В таком случае вам нужно будет перечислить активные порты вместе со номерами идентификатора процессов, а затем просмотреть эти процессы в диспетчере задач.
Просмотр портов вместе с именами процессов
Во-первых, вам нужно открыть командную строку в режиме администратора. Нажмите «Поиск», а затем введите «командная» в поле поиска. Когда вы увидите «Командная строка» в результатах, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».
В командной строке введите следующий текст и нажмите «Ввод»:
Если вы хотите сделать это немного проще, вы также можете выгрузить результаты команды в текстовый файл. Затем вы можете просто найти номер порта в текстовом файле.
Здесь, например, вы можете видеть, что порт 62020 связан процессом Skype4Life.exe. Skype – это приложение для общения между пользователями, поэтому мы можем предположить, что этот порт фактически связан процессом, который регулярно проверяет наличие обновлений для приложения.
Просмотр портов вместе с идентификаторами процессов
Если имя процесса для номера порта, который вы просматриваете, затрудняет определение того, какому приложению он соответствует, вы можете попробовать версию команды, которая показывает идентификаторы процессов (PID), а не имена. Введите следующий текст в командной строке, а затем нажмите Enter :
В столбце справа справа перечислены PID, поэтому просто найдите тот, который связан с портом, который вы пытаетесь устранить.
Затем откройте диспетчер задач, щелкнув правой кнопкой мыши любое открытое пространство на панели задач и выбрав «Диспетчер задач».
Если вы используете Windows 8 или 10, перейдите на вкладку «Подробности» в диспетчере задач. В более старых версиях Windows вы увидите эту информацию на вкладке «Процессы». Отсортируйте список процессов по столбцу «ИД процесса» и найдите PID, связанный с портом, который вы исследуете. Возможно, вы сможете узнать больше о том, какое приложение или служба использует указанный порт, посмотрев столбец «Описание».
Если нет, щелкните процесс правой кнопкой мыши и выберите «Открыть расположение файла». Расположение файла, скорее всего, даст вам подсказку о том, какое приложение задействовано.
Использование NirSoft CurrPorts
Если вы не любите командную строку или предпочли бы использовать простую утилиту, чтобы сделать всё это за один шаг, мы рекомендуем отличный бесплатный CurrPorts. Загрузите инструмент. Только убедитесь, что вы получили правильную версию (обычная версия для 32-разрядной версии Windows, а версия x64 – для 64-разрядной Windows). Это портативное приложение, поэтому вам не нужно его устанавливать. Просто распакуйте папку загрузки и запустите исполняемый файл.
В окне CurrPorts отсортируйте по столбцу «Локальный порт», найдите порт, который вы исследуете, и вы можете увидеть всё: имя процесса, ID, порт, полный путь к процессу и т.д.
Чтобы сделать это ещё проще, дважды щелкните любой процесс, чтобы увидеть каждую деталь в одном окне.
Когда вы определите, какое приложение или служба связаны с порт, – Вы сможете решить, как его использовать. Если это приложение, то можно указать другой номер порта. Если это сервис или у вас нет возможности указать другой номер порта – вероятно, Вам придётся остановить службу или удалить приложение.
Источник
Blog of Khlebalin Dmitriy
(Дорогу осилит идущий…)
Процессы и порты Windows.
Информация.
При установке некоторых программ иногда возникает проблема с доступностью порта. Т.е. вы устанавливаете программу, а она вам говорит: «Извините, но предпочитаемый порт номер занят!». И самое интересное программа не говорит чем или кем занят порт. Обычно это бывают вирусняки.
Как определить каким процессом (программой) занят порт.
1. В меню «Пуск» выберите пункт «Выполнить«;
2. В поле «Открыть» наберите команду cmd и нажмите кнопку «ОК»;
Откроется окно командной строки, примерно такого вида:
4. Теперь в колонке «Локальный адрес», находим нужный нам порт и записываем его идентификатор в колонке»PID»;
Например порт номер 80, его идентификатор 440.
5. Снова открываем меню «Пучк» и выбираем пункт «Выполнить«;
6. В поле «Открыть» вводим команду taskmgr и нажимаем кнопку «ОК»;
7. В окне «Диспетчер задач Windows» переходим на вкладку «Процессы«;
8. В главном меню открываем пункт «Вид» и выбираем пункт «Выбрать столбцы…«;
9. В окне «Выбор столбцов» находим пункт «Идентиф. процесса (PID)» и ставим рядом с ним галочку;
10. Нажимаем кнопку «ОК»;
11. Теперь в окне «Диспетчер задач Windows«, нажимаем на заголовок столбца «PID», для сортировки процессов по возрастанию;
12. Находим номер нашего процесса 440 и в столбце «Имя образа«, смотрим какой процесс занимает наш порт;
В нашем случаи это Apache.exe
Далее если процесс подозрителен, можем его благополучно «пристрелить» через диспетчер задач (обладая правами администратора) или через консоль (опять же, обладая правами администратора) командой Taskkill. Синтаксис ниже:
taskkill [/s компьютер] [/u домен\пользователь [/p пароль]]] [/fi имя_фильтра] [/pid код_процесса]|[/im имя_образа] [/f][/t]
Параметры
/s компьютер
Указывает имя или IP-адрес удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.
/u домен\пользователь
Выполнение команды с разрешениями учетной записи пользователя, который указан как пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.
/p пароль
Определяет пароль учетной записи пользователя, заданной параметром /u.
/fi имя_фильтра
Задает типы процессов, которые следует завершить и не следует. Допустимыми именами фильтров, операторами и значениями являются следующие. Имя Операторы Значение
Hostname eq, ne Любая допустимая строка
Status eq, ne RUNNING|NOT RESPONDING
Imagename eq, ne Любая допустимая строка
PID eg, ne, gt, lt, ge, le Любой положительное число
Session eg, ne, gt, lt, ge, le Любой действительный номер сеанса
CPUTime eg, ne, gt, lt, ge, le Допустимое время в формате чч:мм:сс. Компоненты мм и сс должны иметь значения от 0 до 59, а чч может быть любым значением числа без знака
Memusage eg, ne, gt, lt, ge, le Любое целое число
Username eq, ne Любое действительное имя пользователя ([домен\]пользователь).
Services eq, ne Любая допустимая строка
Windowtitle eq, ne Любая допустимая строка
/pid код_процесса
Указывает код процесса, который необходимо завершить.
/im имя_образа
Указывает имя образа процесса, который необходимо завершить. Используйте подстановочный знак (*) для указания всех имен образа.
/f
Указывает, что процесс(ы) должен быть принудительно завершен. Этот параметр не действует для удаленных процессов, все удаленные процессы завершаются принудительно.
/t
Задает завершение всех дочерних процессов вместе с родительским, такое действие обычно известно как уничтожение дерева.
/?
Отображает справку в командной строке.
Примечания
Подстановочный символ (*) принимается только при указании вместе с фильтрами.
Завершение удаленных процессов всегда выполняется принудительно независимо от указания параметра /f.
Указание имени компьютера в качестве фильтра HOSTNAME приведет к завершению работы и остановке всех процессов.
Используйте команду tasklist для определения кода завершаемого процесса.
Команда taskkill является заменой средству Kill.
Примеры
Далее приведены примеры использования команды taskkill:
taskkill /pid 1230 /pid 1241 /pid 1253
taskkill /f /fi «USERNAME eq NT AUTHORITY\SYSTEM» /im notepad.exe
taskkill /s srvmain /f /im notepad.exe
taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi «IMAGENAME eq note*» /im *
taskkill /s srvmain /u maindom\hiropln /fi «USERNAME ne NT*» /im *
taskkill /f /fi «PID ge 1000» /im *
Форматирование
Формат Значение
Курсив Данные, которые должен ввести пользователь
Полужирный шрифт Элементы, которые следует вводить точно, как показано
Пропуск (…) Параметры могут повторяться несколько раз в командной строке
В квадратных скобках ([]) Необязательные элементы
В фигурных скобках (<>); варианты разделены вертикальной чертой (|). Пример: <четные|нечетные>Набор значений, из которого можно выбрать только одно значение
Шрифт Courier Текст кода или выхода программы
Источник
Опытный
Группа: Пользователи
Сообщений: 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».
Начинающий
Группа: Пользователи
Сообщений: 78
Регистрация: 17.5.2010
Пользователь №: 21 435
После включения компа запускаю Frontol: «Ошибка ККМ Fprint 22: Порт недоступен ()!»
Запускаю Process Explorer, процессов \device\serial или других подобных не обнаруживается.
Выключаю Frontol (завершаю через диспетчер задач), в диспетчере устройств удаляю-добавляю COM1.
и в Process Explorer теперь есть процесс FRONTOL.exe \device\serial0
Опытный
Группа: Пользователи
Сообщений: 442
Регистрация: 5.10.2009
Пользователь №: 17 793
Может быть при старте системы параметры порта некорректные и он не работает.
После удаления и добавления параметры исправляются, но при выключении системы не записываются и при следующей перезагрузке опять неверные.
Можно попробовать автоматизировать удаление/добавление порта в диспетчере устройств при старте фронтол утилитой DevCon.
Источник