【发布时间】:2016-11-16 11:14:39
【问题描述】:
使用 PowerShell 我会问以下问题:
Get-WMIObject Win32_PnPEntity | where {$_.Name -like "USB Serial Port*"} |
Format-Table Name, Description, Manufacturer
输出给我带来:
名称:USB串口(COM15) 描述:USB串口 制造商:FTDI 名称:USB串口(COM10) 描述:USB串口 制造商:FTDI
所以我得到两个结果,括号中的差异。我正在寻找的是获得 COMxx,但通过(控制面板 - 设备和打印机 - 未指定 - 项目属性)中显示的模型(标签)来获得我需要的东西,这意味着设备的 COM 号。例如,请参阅 ScreeShot。请注意,出于安全原因,标签是隐藏的。
你们中有人知道解决方法吗?我将不胜感激您的帮助。
【问题讨论】:
-
抓取 WMI Explorer,它可能会为您指明正确的方向,现在您拥有端口(USB 串行),您需要的是连接到它的设备,我认为该设备将来自 Win32_PnPDevice。然后,这应该将您指向第三个元素。如果是打印机,则类似于 Win32_printer。如果它只是您正在处理的 Com 端口,您可以删除 Win32_PNPEntity 并使用 Win32_SerialPort,这应该为您提供足够的信息,以便将 for-each 放入 PnPDevice 并从那里到实际设备结束 Win32_ 元素。
-
Bob007 我已经尝试过了。没有正面影响。如果我要求 Win32_PnPDevice 的整个列表,没有什么可以帮助我,或者我不知道它可以。无论如何,该列表包括我可以找到类似
\root\\cimv2:Win32_PnPEntity.DeviceID=...的路径,但在输出上没有我的设备ID,它以\root\cimv2:Win32_PnPEntity.DeviceID="FTDIBUS开头。如果来到 Win32_SerialPort 它会列出我的串行端口,但分配给未指定设备的端口除外。 -
`Win32_USBControllerDevice' 给我带来了我的设备 ID,但没有其他我感兴趣的东西
标签: powershell serial-port wmi