2012-07-06 131 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