2012-07-06 57 views
1

这是在Windows XP专业版系统(是的,我知道旧的操作系统) 我一直在寻找一种方法来获得没有安装驱动程序的所有设备的列表,或者正在使用的驱动程序有问题。获取使用powershell缺少驱动程序的设备列表

我已经试过

$foo = Get-WmiObject Win32_PNPEntity | Where-Object{$_.ConfigManagerErrorcode -ne 0} 

与此问题时,它似乎并没有得到所有异常。
例如,具有指纹扫描仪 的HP笔记本电脑在设备管理器中显示为其他设备 - USB设备。 这没有使用我列出的单线条检测到。

有没有办法使用PowerShell获取缺少驱动程序的数组?

+0

我没有与此类经验。但是,查看[文档](http://msdn.microsoft.com/en-us/library/windows/desktop/aa394353(v = vs.85).aspx),我看到一些其他属性,您可以测试看起来有希望例如。 “可用性”的值意味着“未安装”。还有一个名为“状态”的属性,其中包含一些错误代码。也许如果你用当前的Where-Object测试对这些进行OR'd测试,你可以得到一些额外的信息。 – David 2012-07-06 23:07:58

回答

1

我这样做,当我有一些设备,没有被我的脚本拿起,试一试,看看它是否检测到你的设备。在Windows设备管理器

$foo = Get-WmiObject Win32_PNPEntity | Where-Object{$_.Availability -eq 11 -or $_.Availability -eq 12} 
+0

今天晚些时候我会试试这个,然后和你一起回去。谢谢您的回复。 – Radagast 2012-07-10 12:44:28

+0

这个工作适合你吗? – justinf 2012-07-11 14:49:38

1
#For formatting: 
    $result = @{Expression = {$_.Name}; Label = "Device Name"}, 
       @{Expression = {$_.ConfigManagerErrorCode} ; Label = "Status Code" } 

#Checks for devices whose ConfigManagerErrorCode value is greater than 0, i.e has a problem device. 
Get-WmiObject -Class Win32_PnpEntity -ComputerName localhost -Namespace Root\CIMV2 | Where-Object {$_.ConfigManagerErrorCode -gt 0 } | Format-Table $result -AutoSize 

错误代码: - https://support.microsoft.com/en-us/kb/310123 Win32_PNP实体类:https://msdn.microsoft.com/en-us/library/aa394353(v=vs.85).aspx