Скрипт для получения понятных имен всех драйверов в Windows Vista Driverstore - PullRequest
0 голосов
/ 04 июня 2009

Я ищу способ перечислить все драйверы в локальном хранилище драйверов рабочей станции и получить «понятное имя», то есть имя, которое видит пользователь, например, диалоговое окно добавления принтера. В частности, я также хотел бы перечислить только определенный класс устройств, таких как принтер.

Если возможно, vbscript или jscript через Windows Scripting Host. В качестве альтернативы, синтаксический анализ вывода утилиты командной строки тоже подойдет.

1 Ответ

0 голосов
/ 05 июня 2009

Я не эксперт, но, похоже, эту задачу можно выполнить только при наличии Microsoft Systems Management Server (SMS) . Он предоставляет класс WMI SMS_Driver , который, насколько я понимаю, может использоваться для запроса драйверов в хранилище драйверов. Сценарий ниже должен дать вам представление о том, как это можно сделать. (Отказ от ответственности: у меня нет смс, поэтому я не могу доказать, что этот скрипт правильный. Остерегайтесь ошибок:)

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_
    должен сделать трюк.
...