ComPortMan V1.1.7 - COM-Port Manager for Windows

  This page is available in German language too

[Configuration] [News] [Prices] [Download]
  What it is
ComPortMan is a Windows service that gives control over Windows' COM port assignment for COM ports. Running as service makes it independent of the logged on user's privileges, so there is no need to give the users the privilege to change COM ports.
You can define new default COM port numbers by several criteria.
It comes with the COM Port Info tool which shows detailed information about all COM ports.

  Getting Started
When a new device which exposes a COM port appears in the system then Windows assigns the first COM port number which has never been used before. So the port numbers get higher and higher with each new device.
You can change the port number assignments in the Windows Device Management with a lot of mouse clicks (and with admin privileges) but you have to do it again for every new device.
And for USB devices that have no serial number you have to do it too when you attach it to a different USB port.

With ComPortMan you can

  • pre-define new default COM port numbers depending on several criteria
  • let show a balloon tip with the assigned COM port(s)
  • define autorun events depending on criteria
  • uninstall the COM port device from the device manager on removal, e.g. when each device is attached a single time only
All functions are applied to COM port drives at the moment they are being attached and when the ComPortMan service starts up.

ComPortMan runs as Win32 service under Windows 2000, XP, Server 2003, Vista, Windows 7/8/10/11 and all the Server Editions.

BTW: For cleanup of the port reservations there is my "COM Name Arbiter Tool".


Unzip the distribution ( file to "C:\Program Files" (a ComPortMan folder is included). Under Vista and Win7 I suggest a different folder, for instance "C:\Tools" to prevent trouble caused by the Windows "Virtual Store" where the ComPortMan.INI might be redirected to without telling the user.

Then enter your preferred configuration into the ComPortMan.INI (see below). There is a sample file included called ComPortMan_sample.INI. Either create a new ComPortMan.INI or rename the sample.

If you are logged on with administrator privileges you can simply install it by starting the

Without administrator privileges you will be prompted for them.

You can change the ComPortMan.INI without restarting the service because it's checked each time a new COM port device is attached.

You can uninstall the service using parameter -deregister:

Both can be done without the message box by using the following ComPortMan commandline parameters
ComPortMan -silentregister
ComPortMan -silentderegister

It returns Errorlevel 0 on success, 1 on failure.

You can stop and start the installed service by means of the _service_stop.cmd and _service_start.cmd.


ComPortMan is configured thru a text file, the ComPortMan.INI. The ComPortMan.INI is read from the folder of the ComPortMan.EXE.
If required, read at Wikipedia how INI files work.

Sample: Any USB serial device attached to port 2-1-1 at COM7


Sample: USB serial device with certain device ID at COM8, no matter on which USB port it is attached to


Sample: New default COM port numbers for all other USB serial devices

Have a look into the help file ComPortMan_ENG.CHM for more details.
The help file is available online as HTML version too.
If you get the 'cannot display the webpage' error then the help file has the NTFS file attribute 'downloaded from untrusted source' and Microsoft doesn't trust its own CHM file format. To fix this right click the ComPortMan_E.CHM, select Properties and click Unblock.

COM Port Information

ComPortMan comes with a GUI application "COM Port Info" which show information about all COM ports. It's also available standalone here: ComPortInfo

Balloon Tips

ComPortMan can show a balloon tip with information about the COM port(s) of a just attached device:



For the complete history check out the help file which is available online as HTML version too.

V1.1.7 (13 Nov 2022)

  • Bugfix: Errorlevel on -install/-register/-uninstall/-deregister was always 1
  • New: The MSIs creating an entry in "Programs and Features" aka "Add/Remove Programs"
V1.1.6 (13 June 2022)
  • Bugfix: Setting RemoveDosDeviceNameOnStartup=1 works now
  • New: Criteria Address and ParentAddress for USB Composite Devices with more than one COM port
V1.1.5 (25 May 2022)
  • Bugfix: Some bugfixes for "Quick-and-dirty Mode"
  • Bugfix: ComPortInfo sorts in new ports more reliably
V1.1.4 (01 April 2022)
  • Bugfix: Balloontips did not show all COM ports of bluetooth devices with multiple COM ports
  • New: ComPortInfo can flash RTS/DTR lines of RS.232 ports for identification
V1.1.3 (07 Nov 2021)
  • New: Balloontips with round corners under Windows 11
V1.1.2 (11 July 2021)
  • New: RemovePortDeviceOnRemoval and RemoveUsbDeviceOnRemoval have 30s delay now to avoid conflicts when a device disappears for a moment
V1.1.1 (30 May 2021)
  • New: ComPortMan can delete a COM name if still present after changing (sometimes necessary with VirtualPC's virtual COM ports)
V1.1.0 (24 May 2021)
  • Bugfix: Crash ComPortMan when using ComNameArbiterClean
  • New: ComPortMan's BallonTips and ComPortInfo support Windows 10 display scaling > 100%
V1.0.8 (06 April 2021)
  • New: Criteria Device Class
  • New: ComPortMan and ComPortInfo sort ports of multi-serial devices by Location and DeviceID which corresponds better with the hardware
V1.0.7 (14 Feb 2021)
  • Bugfix: ComNameArbiterClean did not work correctly since V0.9.8
V1.0.6 (08 Feb 2021)
  • New: Variable %ComPortNumber% which for instance expands to 9 for COM9
V1.0.5 (03 Jan 2021)
  • New: COM port Registry values under HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM are checked and corrected after restarting a port device. Usually this is the job of the device's drives but some just don't take care. HKLM\HARDWARE\DEVICEMAP\SERIALCOMM is a relic from the pre-plug'n play age (Windows NT 3.1 to 4.0) but since the .NET Framework looks there for available COM ports this is and will stay important...
  • New: Criteria LocationPath
V1.0.4 (21 Sept 2020)
  • Bugfix: ComPortMan and ComPortInfo V1.0.3 did not work with some modem devices
V1.0.3 (21 Sept 2020)
  • New: ComPortMan can restore COM port names when the PortName registry value has been emptied somehow
  • Bugfix: Some minor fixes for ComPortInfo
V1.0.0 (04 Sept 2020)
  • Bugfix: Some "COM Port Info" crashes
  • New: ComPortMan can swap port numbers when required
V0.9.9.0 (26 July 2020)
  • Bugfix: Port assignment might fail in V0.9.8 when a device is attached again
  • Bugfix: BallonTips not shown on some Windows 7
  • New: Faster restart of USB devices by resetting the USB port instead of using the device manager (XP, Win8, Win10 only, not supported under Vista and Win7)
  • New: "COM Port Info" with highlighting of just arrived and removed devices
  • New: "COM Port Info" can restart USB ports (XP, Win8, Win10 only, not supported under Vista and Win7)
V0.9.8.0 (20 May 2020)
  • New: Executing programs on arrival and on removal of COM port devices
  • New: Balloontips in Windows 10 style
  • New: "COM Port Info" changes ports much faster
  • New: "COM Port Info" shows more COM port information
  • New: "COM Port Info" shows open handles
V0.9.7.0 (12 Sept 2017)
  • Bugfix: QuickAndDirty=1 was ignored in V0.9.6
V0.9.6.0 (07 Feb 2017)
  • New: Criteria Location and ParentLocation
  • Bugfix: Generating a full report did not work in ComPortInfo
V0.9.5.0 (10 Dec 2016)
  • New: ComPortMan detect COM port devices which failed to start, for instance because their port number is in use. To prevent this, so far ComPortMan changed the port number to 200 up on removal to ensure the device starts when attached next time. This is no more necessary. Furthermore ComPortMan detects if a device starts but without creating a COM port because it is in use. Both is then fixed by changing the port number and restarting the device.
  • New: When a port device is removed whose port was changed in quick&dirty mode then its driver will try to delete the former port. If this one is in use meanwhile by another device the ComPortMan restores it immediately.
  • New: ListComPorts command line tool replaced by the GUI tool ComPortInfo
V0.9.4.0 (13 July 2015)
  • Bugfix: On -install and -uninstall ComPortMan V0.9.3 did nothing but opening the help; for three month no one told me
V0.9.3.0 (17 May 2015)
  • Bugfix: ComNameArbiterClean did not work correctly
  • Bugfix: Fixing FriendlyNames didn't always work
  • New: BalloonTips on removal
V0.9.2.0 (10 May 2015)
  • New: FriendlyName is checked and fixed even ComPortMan does not change the port number
  • New: Port number is set as used in the "COM Name Arbiter" registry key, even ComPortMan does not change the port number; makes sense because Windows does this only when the device is installed but not on subsequent arrivals
  • New: Port number collisions are detected and fixed even when ComPortMan does not change the port number (on arrival only, not on service startup)
V0.9.1.0 (01 Oct 2014)
  • New: COM port of device with class "Modem" are handled
V0.9.0.0 (11 May 2014)
  • Bugfix: For USB devices attached to USB3 controllers the USB port name was wrong
V0.8.9.0 (18 Feb 2014)
  • Bugfix: For devices with device interface GUID_DEVINTERFACE_USB the removal was not processed
  • New: Setting RemoveDosDeviceNameOnRemoval
V0.8.8.0 (17 Feb 2014)
  • New: Works with device which have the device interface GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR (so far only GUID_DEVINTERFACE_COMPORT)
  • Bugfix: USB port not determined on Texas Instrumens USB3 controllers
V0.8.7.0 (15 May 2013)
  • New: After removal of a COM port ComPortMan can remove this device from the Windows device management, see Settings
V0.8.6.0 (15 May 2013)
  • Bugfix: When assigning a COM-port for a new device the same port is changed for all non-present devices to ensure their driver can start if the are attached at the same time
V0.8.5.0 (04 July 2012)
  • Bugfix: -silentstop (used by the MSI) was not implemented
V0.8.4.0 (03 Juli 2012)
  • Bugfix: -install and -uninstall did not work in V0.8.3
V0.8.3.0 (10 June 2012)
  • Bugfix: Wrong balloontip if multiple different COM devices attached to the same USB hub
  • Change: The first digit of the USB port name has been changed to be compatible with USBDLM and UsbTreeView
V0.8.2.0 (1 March 2012)
  • Bugfix: COM-port removed if all configured ports are not available
V0.8.1.0 (27 Feb 2012)
  • Bugfix: Detection of mulit-port-adaptors as such failed with some devices
  • New: "Quick-and-dirty mode" is default, see Settings
V0.8.0.0 (27 Feb 2012)
  • New: Fast "Quick-and-dirty mode" available, see Settings
  • New: Windows COM-port reservation can be removed, see Settings



For home users I suggest the ZIP file. Just unzip to "C:\Program Files" and run the _service_register.cmd.
The _edit_ini.cmd opens the ComPortMan.ini file (or creates one). It asks for administrator privileges. Without these the INI file would be redirected to the "Virtual Store" where it is useless.
The MSI is for admins who want to deploy the software in their network. It installs without any feedback to "%ProgramFiles%\ComPortMan". An MSI with integrated ComPortMan.INI is not difficult to create, see ComPortMan help under Creating an MSI. There is also some information about using the MSI for ComPortMan updates.

The software is fully functional and does not expire. There is no 'full version'.

Download latest release:
(about 233 KB)
(about 274 KB)

(about 251 KB)
(about 290 KB)


  Conditions and Prices ComPortMan

ComPortMan is Freeware for private and educational (schools, colleges, universities) use only. The students shall outnumber all others.
Otherwise one licence per computer is required after a 30 day test period even though the software does not expire.

To support admins in schools which are often voluntary workers I made ComPortMan freeware for schools, colleges and universities. But that's the line I've drawn and even your organization is non profit, good and important I have to say, it's beyond that line. Ask me for a discount in this case.

Prices with effect from 2021
(Euro prices are constant, USD prices are floating):

Purchase of: 
Price per licence
1 to 9 licences
15.00 USD
10 to 99 licences
9.00 USD
100 to 999 licences
6.75 USD
1000 to 9999 licences
4.50 USD
>10000 licences
2.25 USD

You can order directly at me, I send offer and invoice on request.
An online order isn't available because the KAGI Online Shop closed after 22 years.

The licence is delivered as licence number by eMail or on the invoice. It's not required for the software, the software is not limited in any way and it does not expire.

All licences are not limited in time and valid for future versions too.


last change: 13 June 2022


The phone number is here because of the strange german law. Please don't call me, write an eMail instead.