[WMI] Festplatteninformationen

Hallo, die WMI-Klassen sind leider nur unzureichend dokumentiert, deshalb empfehle Ich dir das Tool WMI Scriptomatic 2.0 von Microsoft, dort kann man die Klassen wenigstens bequem anwählen und dann schauen, ob die gewünschte Funktion dabei ist!

Ich glaub, das die WMIC.exe auch so eine help-Funktion bietet, habs aber noch nie probiert!:rolleyes:

PCB
 
Du kannst dir auch mit wbemtest die Klassen selber suchen.

1. Start, Ausführen: Wbemtest eingeben
2. Verbinden klicken, root\cimv2 eingeben. Das ist der Windows\system Namespace
3. Klassen aufzählen, Klassen rekursiv auswählen
4. Deine Klasse und die gesuchte Eigenschaft suchen

5. Dein Script bauen und auf die gesuchte Klasse abfragen
 
Nein, dich.
ABer inzwischen habe ich schon etwas passendes gefunden: Win32_LogicalDisk

Jetzt habe ich das Problem, dass mir alle Laufwerke angezeigt werden inkl. Netzlaufwerke. Ich will aber nur die Festplatten, die wirklich im PC sind un eventuell Disketten - und CD-LAufwerke.

Das ist mein Code:

Code:
On Error Resume Next
 
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_logicaldisk", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
   
  
  Set colItems1 = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly) 

	fileOut.WriteLine(vbCRLF)
	fileOut.WriteLine("-----------------LAUFWERKE---------------")
	
	fileOut.WriteLine("Laufwerke")
    For Each objItem1 In colItems1
     strCaption = objItem1.Caption
	   'WScript.Echo "Caption: " & objItem1.Caption

     fileOut.WriteLine("Name: " & strCaption)
   Next

     fileOut.WriteLine(vbCRLF)     
     
   For Each objItem In colItems
     
	 strName = obItem.Name
       'WScript.Echo "Name: " & strName
     strDescription = objItem.Description
	   'WScript.Echo "Description: " & strDescription
     strDriveType = objItem.DriveType
	   'WScript.Echo "DriveType: " & strDriveType
     strFileSystem = objItem.FileSystem
	   'WScript.Echo "FileSystem: " & strFileSystem
     strFreeSpace = objItem.FreeSpace
	   'WScript.Echo "FreeSpace: " & strFreeSpace
     strSize = objItem.Size
	   'WScript.Echo "Size: " & strSize
     strVolumeSerialNumber = objItem.VolumeSerialNumber
       'WScript.Echo "VolumeSerialNumber: " & objItem.VolumeSerialNumber 
     
      fileOut.WriteLine(objItem.name & " " & objItem.Description & "(" & objItem.DriveType & ") formatiert mit: " & objItem.FileSystem) 
	  fileOut.WriteLine("Größe der Festplatte: "& Round(objItem.Size / 1024^3,2) & " GB")
	  fileOut.WriteLine("Freier Speicher: " & Round(objItem.FreeSpace / 1024^3,2) & " GB" & " (" & Round(objItem.FreeSpace * 100 / objItem.Size) & "%)")
      fileOut.WriteLine("Serial Number: " & strVolumeSerialNumber)
      fileOut.WriteLine(vbCRLF)
  

   Next
   
   fileOut.WriteLine("-----------------ENDE LAUFWERKE---------------")
 
Zurück
Oben