【问题标题】:How to Get-WMIObject Win32_PnPEntity | where {$_.Name -like "USB Serial Port*"} by Model (label) of Unspecified Device如何获取-WMIObject Win32_PnPEntity |其中 {$_.Name -like "USB Serial Port*"} 按未指定设备的型号(标签)
【发布时间】: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


【解决方案1】:

我现在手头没有任何可直接连接的打印机来确认,但您要查找的属性应该是标题或描述。您可以通过将其传送到Get-Member 或仅传送到Format-List 来查看对象上所有可用的属性,以查看所有内容的评估结果。有关该类可用属性的更多信息,请访问here

【讨论】:

  • 如果我use Get-WMIObject Win32_PnPEntity | where {$_.Name -like "USB Serial Port*"}
  • 是的,将结果传递给get-member,你会看到可用的属性,如果你使用Format-List,你可以看到他们评估的内容并选择与what匹配的那个你需要。
  • 谢谢迈克。标题等于描述:USB Serial Port (COM15)。如果我要求整个列表,那么我正在寻找的模型(标签)一无所有。
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 2023-03-06
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多