Win32_PnPEntity 没有获取隐藏设备
Posted
技术标签:
【中文标题】Win32_PnPEntity 没有获取隐藏设备【英文标题】:Win32_PnPEntity not getting hidden devices 【发布时间】:2016-04-30 14:02:13 【问题描述】:我正在使用 Win32_PnPEntity 类来获取计算机中的所有设备,但 Win32_PnPEntity 类没有列出隐藏的设备。 Windows 设备管理器中的隐藏设备状态为“当前,此硬件设备未连接到计算机。(代码 45)”,可以通过单击设备管理器中的菜单选项来显示:查看 > 显示隐藏设备(Windows 10) .
有谁知道如何获得隐藏设备?
【问题讨论】:
【参考方案1】:您可以使用以下命令:
Get-PnpDevice -class "Ports"
Status Class FriendlyName
------ ----- ------------
OK Ports Communications Port (COM1)
Unknown Ports Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced
Unknown Ports Arduino Uno (COM5)
Unknown Ports Silicon Labs Dual CP2105 USB to UART Bridge: Standard
OK Ports Prolific USB-to-Serial Comm Port (COM6)
在这里你可以看到我的 COM 端口已经断开(状态:未知)
【讨论】:
谢谢@bck,我需要那个答案,就像 5 年前一样! ? Nice Get-PnpDevice 列出了隐藏的设备。想知道他们在幕后是如何做到的。是否可以直接使用 WMI(如在 C# 中)来做同样的事情。到现在还想不通。【参考方案2】:您可以使用ConfigManagerErrorCode
。请参阅Win32_PnPEntity 和Win32_PnPEntity MSDN。你没有提到你是使用 powershell 还是 C# 来编写脚本,我假设是 powershell。
$result = @Expression = $_.Name; Label = "Device Name",
@Expression = $_.ConfigManagerErrorCode ; Label = "Status Code"
Get-WmiObject -Class Win32_PnpEntity -ComputerName localhost -Namespace Root\CIMV2 | Where-Object $_.ConfigManagerErrorCode -gt 0 | Format-Table $result
【讨论】:
嗨,阿米特。您放在这里的代码是返回禁用的设备而不是隐藏的设备。隐藏设备是之前已连接但当前未连接的设备。在 Windows 10(可能只有 Windows 10?)中,打开设备管理器并单击菜单查看 > 显示隐藏的设备。在网络适配器下,您将看到隐藏在存储卷之前和下方的 WAN 微型端口,您将看到隐藏的 (USB) 卷。 Try : $_.ConfigManagerErrorCode -eq 45 如果第一个不工作,你能得到下面提到的查询的输出。获取 WmiObject -Class Win32_PnpEntity |导出-CSV C:\.csv Win32_PnpEntity 只是不输出隐藏设备。这就是全部。以上是关于Win32_PnPEntity 没有获取隐藏设备的主要内容,如果未能解决你的问题,请参考以下文章