ワークステーションのローカル Driverstore にあるすべてのドライバーを列挙し、プリンターの追加ダイアログなどでユーザーに表示される名前である「フレンドリ名」を取得する方法を探しています。具体的には、プリンターのような特定のクラスのデバイスのみをリストしたいと思います。
可能であれば、Windows Scripting Host 経由の vbscript または jscript。または、コマンド ライン ユーティリティの出力を解析しても問題ありません。
ワークステーションのローカル Driverstore にあるすべてのドライバーを列挙し、プリンターの追加ダイアログなどでユーザーに表示される名前である「フレンドリ名」を取得する方法を探しています。具体的には、プリンターのような特定のクラスのデバイスのみをリストしたいと思います。
可能であれば、Windows Scripting Host 経由の vbscript または jscript。または、コマンド ライン ユーティリティの出力を解析しても問題ありません。
私は専門家ではありませんが、Microsoft Systems Management Server (SMS)を使用している場合にのみ、このタスクをスクリプト化できるようです。これはSMS_Driver WMI クラスを提供します。私が理解している限りでは、これを使用して Driver Store 内のドライバーをクエリできます。以下のスクリプトは、これを行う方法のアイデアを提供するはずです。(免責事項: 私は SMS を持っていないので、このスクリプトが正しいことを証明できません。バグに注意してください :)
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_トリックを行う必要があります。