#include <Misc.au3>

;---------------------------------------------------------------------
;
;	CIM_DataFile
;
;	"CIM_DataFile" ist ein Typ einer logischen Datei, eine Namensammlung
;	von Daten und ausführbarem Code.Das Verhalten des Anbieters, der
;	diese Klasse unterstützt wird in zukünftigen Versionen geändert.
;	Zurzeit gibt der Anbieter Dateien auf Festplatten und Dateien auf
;	zugeordneten logischen Datenträgern zurück. Zukünftig werden nur
;	Instanzen von Dateien auf lokalen Festplatten zurückgegeben.
;
;	Unterstützung
;	Unterstützt auf allen Windows-Versionen.
;
;	Namespace
;	Die Klasse CIM_DataFile stammt aus dem WMI-Namensraum root\cimv2
;
;---------------------------------------------------------------------

;---------------------------------------------------------------------
;
;	>>>> Original CIM_DataFile .vbs <<<<
;
;
;	strServer = "."
;
;	Set objWMI = GetObject("winmgmts://" & strServer & "/root\cimv2")
;	Set objInstances = objWMI.InstancesOf("CIM_DataFile",48)
;
;	On Error Resume Next
;	For Each objInstance in objInstances
;	With objInstance
;	WScript.Echo .AccessMask
;	WScript.Echo .Archive
;	WScript.Echo .Caption
;	WScript.Echo .Compressed
;	WScript.Echo .CompressionMethod
;	WScript.Echo .CreationClassName
;	WScript.Echo .CreationDate
;	WScript.Echo .CSCreationClassName
;	WScript.Echo .CSName
;	WScript.Echo .Description
;	WScript.Echo .Drive
;	WScript.Echo .EightDotThreeFileName
;	WScript.Echo .Encrypted
;	WScript.Echo .EncryptionMethod
;	WScript.Echo .Extension
;	WScript.Echo .FileName
;	WScript.Echo .FileSize
;	WScript.Echo .FileType
;	WScript.Echo .FSCreationClassName
;	WScript.Echo .FSName
;	WScript.Echo .Hidden
;	WScript.Echo .InstallDate
;	WScript.Echo .InUseCount
;	WScript.Echo .LastAccessed
;	WScript.Echo .LastModified
;	WScript.Echo .Manufacturer
;	WScript.Echo .Name
;	WScript.Echo .Path
;	WScript.Echo .Readable
;	WScript.Echo .Status
;	WScript.Echo .System
;	WScript.Echo .Version
;	WScript.Echo .Writeable
;	End With
;	On Error Goto 0
;	Next
;---------------------------------------------------------------------

Local $strServer = "."

Local $objWMI = ObjGet("winmgmts://" & $strServer & "/root\cimv2")
Local $objI = $objWMI.InstancesOf("CIM_DataFile", 48)
Global $intLog = FileOpen(@ScriptDir & '\CIM_DataFile.log', 2)


; ----------------------------------------------------------------------------
;
;   Autor   >> Kleiner27 <<  www.AutoIt.de
;
; ----------------------------------------------------------------------------


For $objI In $objI
	With $objI
		_Log(.AccessMask);	Die Eigenschaft "AccessMask" ist ein Bitarray, das die Zugriffsrechte für die Datei oder das Verzeichnis des Benutzers oder der Gruppe darstellt

		_Log(.Archive);	Die Eigenschaft "Archive" ist ein boolescher Wert, der angibt, ob die Datei archiviert werden soll

		_Log(.Caption) ;Die Eigenschaft "Caption" gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an

		_Log(.Compressed);Die Eigenschaft "Compressed" ist ein boolescher Wert, der angibt, dass die Datei komprimiert ist

		_Log(.CompressionMethod);Die Eigenschaft "CompressionMethod" ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum Komprimieren
		;der logischen Datei angibt. Wenn es nicht möglich ist, das Komprimierungsschema zu beschreiben, wird Folgendes angegeben: "Unbekannt", wenn nicht bekannt ist
		;, ob die logische Datei komprimiert ist. "Komprimiert", wenn die Datei komprimiert ist, aber das Komprimierungsschema unbekannt ist. "Nicht komprimiert"
		;, wenn die logische Datei nicht komprimiert ist.

		_Log(.CreationClassName);Die Eigenschaft "CreationClassName" gibt den Klassennamen an

		_Log(.CreationDate);Die Eigenschaft "CreationDate" gibt das Erstellungsdatum der Datei an.

		_Log(.CSCreationClassName);Die Eigenschaft "CSCreationClassName" gibt die Klasse des Computersystems an.

		_Log(.CSName);Die Eigenschaft "CSName" gibt den Namen des Computersystems an.

		_Log(.Description);Die Eigenschaft "Description" gibt eine Textbeschreibung des Objekts an.

		_Log(.Drive);Die Eigenschaft "Drive" gibt den Laufwerkbuchstaben (einschließlich Doppelpunkt) der Datei an. Beispiel: c:

		_Log(.EightDotThreeFileName);Die Eigenschaft "EightDotThreeFileName" gibt den DOS-kompatiblen Namen der Datei an. Beispiel: c:\progra~1

		_Log(.Encrypted);Die Eigenschaft "Encrypted" ist ein boolescher Wert, der angibt, dass die Datei verschlüsselt ist.

		_Log(.EncryptionMethod);Die Eigenschaft "EncryptionMethod" ist eine formfreie Zeichenfolge, die den Algorithmus oder das Programm zum
		;Verschlüsseln der logischen Datei angibt. Wenn es z. B. aus Sicherheitsgründen nicht möglich ist, das Verschlüsselungsschema zu beschreiben
		;, wird Folgendes angegeben: "Unbekannt", wenn nicht bekannt ist, ob die logische Datei verschlüsselt ist. "Verschlüsselt", wenn die Datei verschlüsselt
		;ist, aber das Verschlüsselungsschema unbekannt ist. "Nicht verschlüsselt", wenn die logische Datei nicht verschlüsselt ist.

		_Log(.Extension);Die Eigenschaft "Extension" gibt die Erweiterung der Datei ohne Punkt an. Beispiel: txt, mof, mdb.

		_Log(.FileName);Die Eigenschaft "FileName" gibt den Namen der Datei ohne Erweiterung an. Beispiel: autoexe

		_Log(.FileSize);Die Eigenschaft "FileSize" gibt die Datengröße in Bytes an.

		_Log(.FileType);Die Eigenschaft "FileType" stellt den in der Eigenschaft "Extension" angegebenen Dateityp dar.

		_Log(.FSCreationClassName);Die Eigenschaft "FSCreationClassName" gibt die Klasse des Dateisystems an.

		_Log(.FSName);Die Eigenschaft "FSName" gibt den Namen des Dateisystems an.

		_Log(.Hidden);Die Eigenschaft "Hidden" ist ein boolescher Wert, der angibt, ob die Datei versteckt ist.

		_Log(.InstallDate);Die Eigenschaft "InstallDate" gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein.

		_Log(.InUseCount);Die Eigenschaft "InUseCount" gibt die Anzahl der geöffneten Instanzen einer Datei an.

		_Log(.LastAccessed);Die Eigenschaft "LastAccessed" gibt an, wann zuletzt auf die Datei zugegriffen wurde.

		_Log(.LastModified);Die Eigenschaft "LastModified" gibt an, wann die Datei zuletzt geändert wurde.

		_Log(.Manufacturer);Herstellerzeichenfolge aus der Versionsressource, falls vorhanden.

		_Log(.Name);Die Eigenschaft "Name" gibt den vererbten Namen an, der als Schlüssel einer logischen Datei innerhalb eines Dateisystems dient.
		;Es müssen vollständige Pfadnamen angegeben werden. Beispiel: c:\winnt\system\win.ini

		_Log(.Path);Die Eigenschaft "Path" gibt den Pfad der Datei an, einschließlich umgekehrter Schrägstriche am Anfang und am Ende. Beispiel: \windows\system\

		_Log(.Readable);Die Eigenschaft "Readable" ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann.

		_Log(.Status);Die Eigenschaft "Status" gibt den aktuellen Status des Objekts an. Es können betriebsbereite oder nicht betriebsbereite Zustände
		;definiert werden. Betriebsbereite Zustände sind "OK", "Heruntergestuft" und "Künftiger Fehler". "Künftiger Fehler" gibt an, dass ein Element
		;ordnungsgemäß funktioniert, aber in naher Zukunft ein Fehler auftreten wird. Ein Beispiel ist eine SMART-aktivierte Festplatte. Nicht betriebsbereite
		;Zustände sind "Fehler", "Starten", "Beenden" und "Dienst". "Dienst" kann während des erneuten Spiegelns eines Datenträgers, beim erneuten Laden einer
		;Benutzerberechtigungsliste oder einem anderen administrativen Vorgang zutreffen. Nicht alle Vorgänge sind online.

		_Log(.System);Die Eigenschaft "System" ist ein boolescher Wert, der angibt, ob die Datei eine Systemdatei ist.

		_Log(.Version);	Versionszeichenfolge aus der Versionsressource, falls vorhanden.

		_Log(.Writeable);Die Eigenschaft "Writeable" ist ein boolescher Wert, der angibt, ob die Datei geschrieben werden kann.

	EndWith
Next

Func _Log($Log = "", $inLine = 0)
	Local $st
	If StringLeft($Log, 1) <> ">" Then $st = "- "
	FileWriteLine($intLog, $st & $Log & _Iif($inLine = 1, @CRLF, ""))
EndFunc   ;==>_Log

Func _Ende()
	FileClose($intLog)
EndFunc   ;==>_Ende
