WMI->in.vbs zu Autoit

  • Hallo Liebe Leute!

    Ich bastel gerade vbs in autoit - zu verarbeiten habe das erste Skript fertig und möchte das mal vorstellen vielleicht hat ja einer eine bessere Lösung oder ein paar anregungen!

    Es geht um: Wmic in vbs zu autoit
    CIM_DataFile

    "CIM_DataFile" ist ein Typ einer logischen Datei, eine Namensammlung von Daten und ausführbarem Code. 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.
    Beide code sammeln infos in der log : Bei mir über 150 MB

    Der kleine aber mit vielen Infos:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;---------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;CIM_DataFile

    [/autoit] [autoit][/autoit] [autoit]

    ;"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.

    [/autoit] [autoit][/autoit] [autoit]

    ;Unterstützung
    ;Unterstützt auf allen Windows-Versionen.

    [/autoit] [autoit][/autoit] [autoit]

    ;Namespace
    ;Die Klasse CIM_DataFile stammt aus dem WMI-Namensraum root\cimv2

    [/autoit] [autoit][/autoit] [autoit]

    ;---------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;---------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; >>>> Original CIM_DataFile .vbs <<<<

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; strServer = "."

    [/autoit] [autoit][/autoit] [autoit]

    ; Set objWMI = GetObject("winmgmts://" & strServer & "/root\cimv2")
    ; Set objInstances = objWMI.InstancesOf("CIM_DataFile",48)

    [/autoit] [autoit][/autoit] [autoit]

    ; For Each objInstance in objInstances
    ; WScript.Echo objInstance.getObjectText_
    ; Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;---------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $strServer = "."

    [/autoit] [autoit][/autoit] [autoit]

    Local $objWMI = ObjGet("winmgmts://" & $strServer & "/root\cimv2")
    Local $objInstances = $objWMI.InstancesOf("CIM_DataFile",48)

    [/autoit] [autoit][/autoit] [autoit]

    Global $intLog = FileOpen(@ScriptDir & '\CIM_DataFile.log', 2)

    [/autoit] [autoit][/autoit] [autoit]

    For $objInstance in $objInstances
    _Log($objInstance.getObjectText_)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Func _Log($Log = "", $inLine = 0)
    Local $st
    If StringLeft($Log, 1) <> ">" Then $st = "- "
    FileWriteLine($intLog, $st & $Log & _Iif($inLine = 1, @CRLF, ""))
    EndFunc ;==>_WriteLog

    [/autoit] [autoit][/autoit] [autoit]

    Func _Ende()
    FileClose($intLog)
    EndFunc ;==>_Ende

    [/autoit]

    Der große:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;---------------------------------------------------------------------
    ;
    ; 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
    ;
    ;---------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;---------------------------------------------------------------------
    ;
    ; >>>> 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
    ;---------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    Local $strServer = "."

    [/autoit] [autoit][/autoit] [autoit]

    Local $objWMI = ObjGet("winmgmts://" & $strServer & "/root\cimv2")
    Local $objI = $objWMI.InstancesOf("CIM_DataFile", 48)
    Global $intLog = FileOpen(@ScriptDir & '\CIM_DataFile.log', 2)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; ----------------------------------------------------------------------------
    ;
    ; Autor >> Kleiner27 << http://www.AutoIt.de
    ;
    ; ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Archive); Die Eigenschaft "Archive" ist ein boolescher Wert, der angibt, ob die Datei archiviert werden soll

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Caption) ;Die Eigenschaft "Caption" gibt eine kurze Textbeschreibung (eine Zeile) des Objekts an

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Compressed);Die Eigenschaft "Compressed" ist ein boolescher Wert, der angibt, dass die Datei komprimiert ist

    [/autoit] [autoit][/autoit] [autoit]

    _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.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.CreationClassName);Die Eigenschaft "CreationClassName" gibt den Klassennamen an

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.CreationDate);Die Eigenschaft "CreationDate" gibt das Erstellungsdatum der Datei an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.CSCreationClassName);Die Eigenschaft "CSCreationClassName" gibt die Klasse des Computersystems an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.CSName);Die Eigenschaft "CSName" gibt den Namen des Computersystems an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Description);Die Eigenschaft "Description" gibt eine Textbeschreibung des Objekts an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Drive);Die Eigenschaft "Drive" gibt den Laufwerkbuchstaben (einschließlich Doppelpunkt) der Datei an. Beispiel: c:

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.EightDotThreeFileName);Die Eigenschaft "EightDotThreeFileName" gibt den DOS-kompatiblen Namen der Datei an. Beispiel: c:\progra~1

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Encrypted);Die Eigenschaft "Encrypted" ist ein boolescher Wert, der angibt, dass die Datei verschlüsselt ist.

    [/autoit] [autoit][/autoit] [autoit]

    _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.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Extension);Die Eigenschaft "Extension" gibt die Erweiterung der Datei ohne Punkt an. Beispiel: txt, mof, mdb.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.FileName);Die Eigenschaft "FileName" gibt den Namen der Datei ohne Erweiterung an. Beispiel: autoexe

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.FileSize);Die Eigenschaft "FileSize" gibt die Datengröße in Bytes an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.FileType);Die Eigenschaft "FileType" stellt den in der Eigenschaft "Extension" angegebenen Dateityp dar.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.FSCreationClassName);Die Eigenschaft "FSCreationClassName" gibt die Klasse des Dateisystems an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.FSName);Die Eigenschaft "FSName" gibt den Namen des Dateisystems an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Hidden);Die Eigenschaft "Hidden" ist ein boolescher Wert, der angibt, ob die Datei versteckt ist.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.InstallDate);Die Eigenschaft "InstallDate" gibt an, wann das Objekt installiert wurde. Wenn der Wert nicht angegeben ist, kann das Objekt trotzdem installiert sein.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.InUseCount);Die Eigenschaft "InUseCount" gibt die Anzahl der geöffneten Instanzen einer Datei an.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.LastAccessed);Die Eigenschaft "LastAccessed" gibt an, wann zuletzt auf die Datei zugegriffen wurde.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.LastModified);Die Eigenschaft "LastModified" gibt an, wann die Datei zuletzt geändert wurde.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Manufacturer);Herstellerzeichenfolge aus der Versionsressource, falls vorhanden.

    [/autoit] [autoit][/autoit] [autoit]

    _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

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Path);Die Eigenschaft "Path" gibt den Pfad der Datei an, einschließlich umgekehrter Schrägstriche am Anfang und am Ende. Beispiel: \windows\system\

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Readable);Die Eigenschaft "Readable" ist ein boolescher Wert, der angibt, ob die Datei gelesen werden kann.

    [/autoit] [autoit][/autoit] [autoit]

    _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.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.System);Die Eigenschaft "System" ist ein boolescher Wert, der angibt, ob die Datei eine Systemdatei ist.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Version); Versionszeichenfolge aus der Versionsressource, falls vorhanden.

    [/autoit] [autoit][/autoit] [autoit]

    _Log(.Writeable);Die Eigenschaft "Writeable" ist ein boolescher Wert, der angibt, ob die Datei geschrieben werden kann.

    [/autoit] [autoit][/autoit] [autoit]

    EndWith
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Func _Log($Log = "", $inLine = 0)
    Local $st
    If StringLeft($Log, 1) <> ">" Then $st = "- "
    FileWriteLine($intLog, $st & $Log & _Iif($inLine = 1, @CRLF, ""))
    EndFunc ;==>_Log

    [/autoit] [autoit][/autoit] [autoit]

    Func _Ende()
    FileClose($intLog)
    EndFunc ;==>_Ende

    [/autoit]

    Viel spass!


    LG Kleiner