Hi Dan,
Thankyou so much for that. I would never have worked that out.
Here's a working script for anyone else. (Watch out for word/line wrap).
Regards,
Dave.
Option Explicit
Dim go_wmi
Set go_wmi = GetObject( "WinMgmts:" )
Call s_main()
WScript.Quit
Sub s_main()
Dim lc_tapes, lo_tape
Set lc_tapes = go_wmi.InstancesOf( "Win32_TapeDrive" )
If lc_tapes.Count = 0 Then
WScript.Echo "No tape drives are installed on this computer."
Else
WScript.Echo "Count: " & lc_tapes.Count
For Each lo_tape In lc_tapes
WScript.Echo "=============================================="
Wscript.Echo "Availability: " & lo_tape.Availability
Wscript.Echo "Device ID: " & lo_tape.DeviceID
Wscript.Echo "Features High: " & lo_tape.FeaturesHigh
Wscript.Echo "Features Low: " & lo_tape.FeaturesLow
Wscript.Echo "Name: " & lo_tape.Name
Wscript.Echo "Needs Cleaning: " & lo_tape.NeedsCleaning
Wscript.Echo "Status: " & lo_tape.Status
Call s_drivers( lo_tape.DeviceID )
Next
WScript.Echo "=============================================="
End If
End Sub
Sub s_drivers( ps_device_id )
Dim ls_device_id, ls_wql, lc_drivers, lo_driver
ls_device_id = Replace( ps_device_id, "\", "\\" )
ls_wql = "ASSOCIATORS OF {Win32_PnPEntity.DeviceID=""" & ls_device_id & """} " & _
"WHERE AssocClass=Win32_CIMLogicalDeviceCIMDataFile " & _
"Role=Antecedent ResultRole=Dependent "
Set lc_drivers = go_wmi.ExecQuery( ls_wql, ,48 )
For Each lo_driver In lc_drivers
Wscript.Echo "Driver: `" & lo_driver.FileName & "`, version `" & lo_driver.Version & "`"
Next
End Sub