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」だったので、それでfitlerしようとしたら、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