WSH/WMI: USB-Stick (Removable Devices) ermiteln
Problem:
Um z.B. ein Backup-Lösung auf einen USB-Wechseldatenträger (Stick) zu ermöglichen, möchte man prüfen, ob ein "Removable Device" angeschlossen ist.
außerdem soll geprüft werden, ob es mehr als ein USB-Device gibt.
Lösung:
Das nachfolgende Skript überprüft per WMI, ob "Removable Devices" angeschlossen sind. Sollten welche gefunden sein, wird die Anzahl, der Volumename und der Laufwerksbuchste davon ermittelt.
Um z.B. ein Backup-Lösung auf einen USB-Wechseldatenträger (Stick) zu ermöglichen, möchte man prüfen, ob ein "Removable Device" angeschlossen ist.
außerdem soll geprüft werden, ob es mehr als ein USB-Device gibt.
Lösung:
Das nachfolgende Skript überprüft per WMI, ob "Removable Devices" angeschlossen sind. Sollten welche gefunden sein, wird die Anzahl, der Volumename und der Laufwerksbuchste davon ermittelt.
Option Explicit
Dim WshShell
Dim strComputer, objWMIService, colItems, objItem
Dim USB, USize, UName, UAnzahl, Antwort
Dim BackupDir, UDesktop, UDateien, UFavoriten
set WshShell = WScript.CreateObject("WScript.Shell")
'Setzt USB-Variablen zurück
USB =""
UAnzahl = 0
USize = 0
UName = ""
'Ermittlung von Anzahl und Eigenschaften Wechseldatenträger
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
For Each objItem in colItems
If objItem.DriveType = 2 Then
USB = objItem.Name & "\"
UName = objItem.VolumeName
USize = Int(objItem.FreeSpace /1048576)
UAnzahl = UAnzahl + 1 'Anzahl WEchselmedien ermitteln
End if
Next
'Überprüft, ob mehr als ein USB-Stick angesteckt ist
If UAnzahl > 1 Then
MsgBox "Mehrere USB-Sticks gefunden!" & vbCRLF & "Bitte nur Sicherungs-Stick einstecken und Sicherung neu starten.", vbOKOnly + vbCritical, "Mehrere USB-Sticks gefunden"
WScript.Quit
End if
'Überprüfen ob ein USB-Stick angesteckt ist
If USB = "" Then
MsgBox "KEIN USB-Stick gefunden!" & vbCrLf & "Bitte überprüfen und Sicherung neu starten!", vbOKOnly + vbCritical, "USB-Fehler"
WScript.Quit
End If