2009-06-04 33 views
0

我正在尋找一種方法來枚舉工作站的本地Driverstore中的所有驅動程序,並檢索用戶看到的名稱的「友好名稱」例如添加打印機對話。具體而言,我還想列舉一些特定類別的設備,如打印機。腳本檢索Windows Vista中所有驅動程序的友好名稱Driverstore

如果可能vbscript或jscript通過Windows腳本宿主。另外解析一個命令行工具的輸出也可以。

回答

0

我不是專家,但它似乎只有在您有Microsoft Systems Management Server (SMS)時才能編寫此任務。它提供了SMS_Driver WMI類,據我瞭解,它可用於查詢Driver Store中的驅動程序。下面的腳本應該讓你知道如何做到這一點。 (免責聲明:我沒有短信,所以我不能證明該腳本正確謹防錯誤:)

On Error Resume Next 

strComputer = "." ' Computer name. Dot means local computer 

' Connect to the SMS Provider 
Set oWMIService = GetObject("winmgmts:" & _ 
    "{impersonationLevel=impersonate}!\\" & strComputer & "\root\sms\site_XXX") ' Replace XXX with your site code (see notes below) 
If Err.Number <> 0 Then 
    WScript.Echo "WBemServices connection failed. Error " & Err.Number & ": " & Err.Description 
    WScript.Quit 
End If 

' Get all device drivers 
Set colDrivers = oWMIService.ExecQuery("SELECT * FROM SMS_Driver") 

' List properties of each driver 
For Each objDriver In colDrivers 
    WScript.Echo _ 
     "Name: "  & objDriver.LocalizedDisplayName & vbNewLine & _ 
     "Class: "  & objDriver.DriverClass   & vbNewLine & _ 
     "Model name: " & objDriver.ModelName   & vbNewLine & _ 
     "Description: " & objDriver.LocalizedDescription & vbNewLine & _ 
     "Version: "  & objDriver.DriverVersion  & vbNewLine & _ 
     "Provider: " & objDriver.DriverProvider  & vbNewLine & _ 
     "Path: "  & objDriver.ContentSourcePath & vbNewLine & _ 
     "File: "  & objDriver.DriverINFFile  & vbNewLine 
Next 

註釋:

  • 你也許可以找到在管理工具您的網站代碼 - >計算機管理 - >服務和應用程序 - > WMI控制 - >屬性 - >安全性,在Root \ sms節點下。
  • 該腳本應該列出所有驅動程序類;如果您只需要特定類別(例如打印機驅動程序),請將查詢更改爲
    SELECT * FROM SMS\_Driver WHERE DriverClass=_insert\_proper\_DriverClass\_here_
    應該執行此操作。
+0

如果我們有短信,這將是理想的解決方案。所以這基本上是一個好的解決方案。它不能直接應用於我的問題,但我特別關注本地驅動程序商店。我會更新這個問題。 – 2009-06-10 14:23:25