我正在寻找一种方法来枚举工作站本地驱动程序存储中的所有驱动程序并检索“友好名称”,即用户在例如添加打印机对话框中看到的名称。具体来说,我还想仅列出特定类别的设备,例如打印机。
如果可能,通过 Windows 脚本主机使用 vbscript 或 jscript。或者解析命令行实用程序的输出也很好。
我正在寻找一种方法来枚举工作站本地驱动程序存储中的所有驱动程序并检索“友好名称”,即用户在例如添加打印机对话框中看到的名称。具体来说,我还想仅列出特定类别的设备,例如打印机。
如果可能,通过 Windows 脚本主机使用 vbscript 或 jscript。或者解析命令行实用程序的输出也很好。
我不是专家,但似乎只有在您拥有Microsoft Systems Management Server (SMS)时才能编写此任务的脚本。它提供了SMS_Driver WMI 类,据我了解,它可用于查询驱动程序商店中的驱动程序。下面的脚本应该让您了解如何做到这一点。(免责声明:我没有短信,所以我不能证明这个脚本是正确的。当心错误:)
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
笔记:
SELECT * FROM SMS\_Driver WHERE DriverClass=_insert\_proper\_DriverClass\_here_应该做的伎俩。