我需要找到 Gertec 设备的“COM 端口”。我尝试了下面列出的一些方法,也使用了其他几种方法,但都没有成功。
使用此指令,它返回 Gertec,但它不显示“COM 端口”。
gwmi Win32_USBControllerDevice |%{[wmi]($_.Dependent)} | Out-GridView -Title 'Select a device' -OutputMode Single | select name,description, deviceID, manufacturer, caption
我运行该指令,它返回除 COM10 端口之外的所有内容
Get-WmiObject -Class Win32_SerialPort | Select-Object Name, Description, DeviceID, Manufacturer, Caption
答案1
帖子 Powershell 列出串行端口 + 说明 有这样的建议。
列出所有串行设备:
Get-WMIObject Win32_SerialPort
还有一个很好的 脚本由 not2qubit 编写 我在此重述一下:
$mydevs = (Get-PnPDevice | Where-Object{$_.PNPClass -in "WPD","AndroidUsbDeviceClass","Modem","Ports" } |
Where-Object{$_.Present -in "True"} |
Select-Object Name,Description,Manufacturer,PNPClass,Service,Present,Status,DeviceID |
Sort-Object Name)
$mydevs | Format-Table Description, Manufacturer, PNPClass, Service,
@{Label="COM port"; Expression={ ($_.Name -Match "\((COM\d{1,2})\)" | Out-Null && $Matches[1]) }},
@{Label="VID:PID"; Expression={ ($_.DeviceID -Match "USB\\VID_([0-9a-fA-F]{4})\&PID_([0-9a-fA-F]{4})" | Out-Null && ('{0}{1}{2}' -f ${Matches}[1], ":", ${Matches}[2]).ToLower() ) }},
Present, Status
您可能需要在PNPClass
上面第一个命令中添加更多类型,以包含 Gertec 设备。请参阅链接的答案以获取输出示例。
答案2
您可以从注册表中获取相关信息
Get-ItemProperty "HKLM:\HARDWARE\DEVICEMAP\SERIALCOMM\"
将结果通过管道传输到 Gertec 设备的过滤器,但不确定特定的过滤器需要什么,在您的情况下可能类似于。
| Select-Object "*ger*"