WMIC - Interface

    • Offizieller Beitrag

    Auf WMIC bin ich in diesem Thread gestoßen. Wer ab und an mit WMI gearbeitet hat, wird das Tool (voller Name: Windows Management Instrumentation Console) sicher mögen. Der Zugriff auf die Systemkomponenten ist durch Aliase deutlich verständlicher als bei WMI.

    Hier mal noch die wenigen nützlichen Links dazu:

    Ich habe die Informationen mal auf einer Oberfläche zusammengebracht, von der aus auch gleich Befehle ausgeführt werden können. Somit kann man sich Beschreibung und Syntaxinformation ausserhalb der Konsole anzeigen lassen.

    Da der "Run" Button als Pushbutton erstellt ist, ist also ein normaler Befehlsstart mit ENTER möglich. Ich lese sowohl Ergebnisse als auch Fehler aus und schreibe sie in die Pseudokonsole.


    EDIT:

    Unter Windows 10 wurde Syntax nicht erkannt - heißt dort USAGE (Danke an UEZ fürs Finden).

    Vertikale Scrollbar für Combos hinzugefügt.

    EDIT_2:

    Leider ist Windows 10 da nicht konsistent. In anderer Version steht statt USAGE wieder SYNTAX, habe das jetzt nicht über die Build-Version geregelt.

    NEU: Fileopendialog um eventuelle Ausgabedatei zu öffnen.

    EDIT_3:

    Jetzt hats mich gepackt. ^^

    NEU:

    • optional können Werte aus den ComboBoxen bei Auswahl in die Befehlszeile übernommen werden
    • einige Bsp. stehen in einer ComboBox zur Auswahl (Ansicht oder Ausführung) bereit

    Viel Spaß beim Probieren.


    Bsp. Ausgabe in Datei (HTML-Format)

     


     

  • BugFix 5. Juni 2021 um 19:40

    Hat den Titel des Themas von „WMIC - Inteface“ zu „WMIC - Interface“ geändert.
  • Wie bekomme ich einen Output? Hast du mal ein Beispiel für die Dropdown Menüs?

    Unter WIn10 läuft dein Tool anders als unter Win7.

    Unter Win7 werden die Infos in dem gelben Fenster angezeigt, unter Win10 nicht vollständig.

    Win7:

    Win10:

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (5. Juni 2021 um 22:02)

    • Offizieller Beitrag

    Unter WIn10 läuft dein Tool anders als unter Win7.

    Pooh, das ist natürlich Mist. Ich hatte als Notiz irgendwo gelesen, dass MS WMIC als DEPRECIATED markiert wurde. Hintergrund ist wohl, dass MS alles auf CIM-CmdLets umroutet, da diese OS-unabhängig sind.

    Vielleicht sind da schon Unterschiede.

    Die Syntax rufe ich ja direkt bei Auswahl des Begriffes ab, die ist nicht vorab gespeichert.

    Teste mal, ob du bei eigener Syntaxabfrage BIOS /? im Interface eine Ausgabe bekommst. Bzw teste mal direkt in einer CMD wmic bios /?. Das würde bedeuten, dass Win10 Probleme mit der Aufbereitung der Konsolenausgabe im Skript hat (evtl. OemToChar?).

  • Teste mal, ob du bei eigener Syntaxabfrage BIOS /? im Interface eine Ausgabe bekommst. Bzw teste mal direkt in einer CMD wmic bios /?.

    Yep, dann bekomme ich jeweils eine Ausgabe. An der Funktion OemToChar scheint es nicht zu liegen!

    Liegt daran, dass es unter Windows10 Usage heißt und nicht Syntax:

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    3 Mal editiert, zuletzt von UEZ (5. Juni 2021 um 22:49)

    • Offizieller Beitrag

    An der Funktion OemToChar scheint es nicht zu liegen!

    Hmm, alles Andere ist doch nur Leerzeilen raus schubsen.

    Probiere trotzdem mal diese Variante, hier habe ich auf "OemToCharBuffA" umgestellt. Unter Win 7 funktioniert das auch problemlos.

  • Probiere trotzdem mal diese Variante, hier habe ich auf "OemToCharBuffA" umgestellt. Unter Win 7 funktioniert das auch problemlos.

    Wie oben geschrieben liegt es nicht an der OemToChar, sondern, dass du "SYNTAX:" in der Funktion _WMIC_GetSyntax() abfragst, aber unter Win10 (19041) heißt es "USAGE:".

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (6. Juni 2021 um 12:31)

    • Offizieller Beitrag

    Das funktioniert so nicht zuverlässig... @OSBuild ist bei mir 19042 und $sDetect muss SYNTAX: sein.

    Drecks Windows 10. Ohne jede Struktur.

    OK dann mache ich die Unterscheidung nicht von @OSBuild abhängig (obwohl das recht elegant war),, sondern suche gezielt nach beiden Begriffen in der Hoffnung, dass nicht noch weitere "Virusvarianten" existieren.

  • In anderen Windows 10 Versionen wird nicht USAGE sondern wieder SYNTAX verwendet.

    Wieso prüfst du nicht die WMIC-Version? Bei mir ist es die Version 10.0.1941.1 und da wird Syntax: verwendet.

    WMICodeCreator und WMICExplorer kennst du?

    WMIC ist ja veraltet... was aber stattdessen benutzt werden soll, schreiben die Deppen nicht.

    • Offizieller Beitrag

    WMIC ist ja veraltet... was aber stattdessen benutzt werden soll, schreiben die Deppen nicht.

    Die recht entspannte Syntax von WMIC ist dann obsolet und man muss sich doch mit PS auseinandersetzen. Das ist zugegeben sehr mächtig, sehr schnell und sehr vielseitig - aber eben auch eine eigene Skriptsprache mit der man sich erst vertraut machen muss.

    M$ empfiehlt dann über die PS CmdLets auf den WMI-Namespace zuzgreifen (Abrufen von WMI-Objekten (Get-CimInstance statt: Get-WmiObject)


    Wieso prüfst du nicht die WMIC-Version? Bei mir ist es die Version 10.0.1941.1 und da wird Syntax: verwendet.

    Letztlich weiß ich ja nicht ab welcher Version eine Änderung stattfand und ob diese auch durchgängig enthalten ist. Meine jetzige Methode prüft halt das, was rauskommt - egal welche Version von Windows oder WMIC läuft.