0

我正在寻找一种方法来枚举工作站本地驱动程序存储中的所有驱动程序并检索“友好名称”,即用户在例如添加打印机对话框中看到的名称。具体来说,我还想仅列出特定类别的设备,例如打印机。

如果可能,通过 Windows 脚本主机使用 vbscript 或 jscript。或者解析命令行实用程序的输出也很好。

4

1 回答 1

0

我不是专家,但似乎只有在您拥有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

笔记:

  • 您可能可以在 Root\sms 节点下的管理工具 -> 计算机管理 -> 服务和应用程序 -> WMI 控制 -> 属性 -> 安全中找到您的站点代码。
  • 该脚本应该列出所有驱动程序类;如果您只需要特定的类(例如打印机驱动程序),请将查询更改为
    SELECT * FROM SMS\_Driver WHERE DriverClass=_insert\_proper\_DriverClass\_here_
    应该做的伎俩。
于 2009-06-05T08:53:49.533 回答