Windowsのシリアルポートの番号確認バッチファイル


WindowsでUSBシリアルを繋いだ場合、そのCOM番号が何になったのかを確認するにはデバイスマネージャーの表示で確認する必要がある。

まぁ、いちいち面倒なので、ポートが認識されるとポップアップ表示をしてくれる「PortPop」とか、GUIで一覧を表示する「ViewComPorts」があったりする。

で、ViewComPortsを試してみようと思ったら、こちらはコンパイル済みバイナリが無い・・・ソースを見てみるとWMIから情報を引っ張っているっぽい。

ということはPowerShellで実装できるのでは?

と試してみたところ成功

バッチファイルの内容は下記3行。

@echo off
powershell -sta -ExecutionPolicy Unrestricted -Command "Get-WmiObject -Class Win32_PnPEntity -Filter \"PNPClass='Ports'\" | select Name,Manufacturer,DeviceID"
pause

なお、最初オンボードのIntel Active Managamentが「Service:Serial」だったので、それでfilterしようとしたら、FDTIのは「Service:FTSER2K」だったので、両方に共通の「PNPClass:Ports」を選択しています。

FDTIのWMI出力サンプル

__GENUS                     : 2
__CLASS                     : Win32_PnPEntity
__SUPERCLASS                : CIM_LogicalDevice
__DYNASTY                   : CIM_ManagedSystemElement
__RELPATH                   : Win32_PnPEntity.DeviceID="FTDIBUS\\VID_0403+PID_6001+FTHG96ISA\\0000"
__PROPERTY_COUNT            : 26
__DERIVATION                : {CIM_LogicalDevice, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER                    : WIN10PC
__NAMESPACE                 : root\cimv2
__PATH                      : \\WIN10PC\root\cimv2:Win32_PnPEntity.DeviceID="FTDIBUS\\VID_0403+PID_6001+FTHG96ISA\\0000"
Availability                : 
Caption                     : USB Serial Port (COM4)
ClassGuid                   : {4d36e978-e325-11ce-bfc1-08002be10318}
CompatibleID                : 
ConfigManagerErrorCode      : 0
ConfigManagerUserConfig     : False
CreationClassName           : Win32_PnPEntity
Description                 : USB Serial Port
DeviceID                    : FTDIBUS\VID_0403+PID_6001+FTHG96ISA\0000
ErrorCleared                : 
ErrorDescription            : 
HardwareID                  : {FTDIBUS\COMPORT&VID_0403&PID_6001}
InstallDate                 : 
LastErrorCode               : 
Manufacturer                : FTDI
Name                        : USB Serial Port (COM4)
PNPClass                    : Ports
PNPDeviceID                 : FTDIBUS\VID_0403+PID_6001+FTHG96ISA\0000
PowerManagementCapabilities : 
PowerManagementSupported    : 
Present                     : True
Service                     : FTSER2K
Status                      : OK
StatusInfo                  : 
SystemCreationClassName     : Win32_ComputerSystem
SystemName                  : WIN10PC
PSComputerName              : WIN10PC

Intel Active ManagementのWMI出力サンプル

__GENUS                     : 2
__CLASS                     : Win32_PnPEntity
__SUPERCLASS                : CIM_LogicalDevice
__DYNASTY                   : CIM_ManagedSystemElement
__RELPATH                   : Win32_PnPEntity.DeviceID="PCI\\VEN_8086&DEV_A2BD&SUBSYS_82B4103C&REV_00\\3&11583659&1&B3"
__PROPERTY_COUNT            : 26
__DERIVATION                : {CIM_LogicalDevice, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER                    : WIN10PC
__NAMESPACE                 : root\cimv2
__PATH                      : \\WIN10PC\root\cimv2:Win32_PnPEntity.DeviceID="PCI\\VEN_8086&DEV_A2BD&SUBSYS_82B4103C&REV_00\\3&11583659&1&B3"
Availability                : 
Caption                     : Intel(R) Active Management Technology - SOL (COM3)
ClassGuid                   : {4d36e978-e325-11ce-bfc1-08002be10318}
CompatibleID                : {PCI\VEN_8086&DEV_A2BD&REV_00, PCI\VEN_8086&DEV_A2BD, PCI\VEN_8086&CC_070002, PCI\VEN_8086&CC_0700...}
ConfigManagerErrorCode      : 0
ConfigManagerUserConfig     : False
CreationClassName           : Win32_PnPEntity
Description                 : Intel(R) Active Management Technology - SOL
DeviceID                    : PCI\VEN_8086&DEV_A2BD&SUBSYS_82B4103C&REV_00\3&11583659&1&B3
ErrorCleared                : 
ErrorDescription            : 
HardwareID                  : {PCI\VEN_8086&DEV_A2BD&SUBSYS_82B4103C&REV_00, PCI\VEN_8086&DEV_A2BD&SUBSYS_82B4103C, PCI\VEN_8086&DEV_A2BD&CC_070002, PCI\VEN_8086&DEV_A2BD&CC_0700}
InstallDate                 : 
LastErrorCode               : 
Manufacturer                : Intel
Name                        : Intel(R) Active Management Technology - SOL (COM3)
PNPClass                    : Ports
PNPDeviceID                 : PCI\VEN_8086&DEV_A2BD&SUBSYS_82B4103C&REV_00\3&11583659&1&B3
PowerManagementCapabilities : 
PowerManagementSupported    : 
Present                     : True
Service                     : Serial
Status                      : OK
StatusInfo                  : 
SystemCreationClassName     : Win32_ComputerSystem
SystemName                  : WIN10PC
PSComputerName              : WIN10PC

“Windowsのシリアルポートの番号確認バッチファイル” への2件の返信

  1. 古いの記事にすみません。

    ViewComPorts ですが、WMI を止めて setupapi.dll の API を使うように変更したことで、速度が劇早になりました。
    バイナリも置いてますので、またお試し下さいませ~

こばさん へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください