Connect with us

Wie man

Verwenden von PowerShell zum Abrufen von Computerinformationen

Lernen von PowerShell-Variablen, Eingabe und Ausgabe

WMI und sein neuerer Bruder CIM können beide verwendet werden, um die Windows-Maschinen in Ihrer Umgebung zu verwalten. Aber kennen Sie den Unterschied zwischen ihnen? Begleiten Sie uns, wenn wir einen Blick darauf werfen.

Lesen Sie unbedingt die vorherigen Artikel der Reihe:

Und bleiben Sie die ganze Woche für den Rest der Serie dran.

Einführung

WMI steht für Windows Management Instrumentation. Das Wort „Instrumentierung“ bezieht sich auf die Tatsache, dass Sie mit WMI Informationen über den internen Zustand Ihres Computers erhalten, ähnlich wie die Armaturenbrettinstrumente in Ihrem Auto Informationen über den Zustand der internen Komponenten Ihres Autos abrufen und anzeigen können.

WMI besteht aus einem Repository, das Klassen enthält, die Komponenten darstellen, die innerhalb Ihres Computers verwaltet werden könnten. Damit meinen wir, nur weil WMI eine Win32_Battery-Klasse hat, bedeutet das nicht, dass Ihr Computer eine Batterie enthält. Diese Klassen können dann lokal oder sogar über ein Netzwerk mit einer SQL-ähnlichen Abfragesprache namens WQL nach Informationen abgefragt werden. WMI ist jedoch als sehr unzuverlässig bekannt, hauptsächlich aufgrund der Tatsache, dass es auf RPC (Remote Procedure Calls) basiert, die einige verrückte Dinge mit den Ports anstellen, über die sie kommunizieren.

Ab Windows 8 und Server 2012 wird WMI zugunsten des Common Information Model, kurz CIM, abgeschafft. Der einzige Unterschied zwischen WMI und CIM sind die verwendeten Transportprotokolle. Während WMI Abfragen mit Remote Procedure Calls ausführt, verwendet CIM HTTP, was einen großen Unterschied zu machen scheint. Im Backend sprechen sie immer noch mit demselben Informationsspeicher.

Verwenden von WMI

Der schnellste und einfachste Weg, die Ihnen über WMI zur Verfügung stehenden Informationen zu erkunden, besteht darin, eine Kopie eines beliebigen kostenlosen WMI-Objektbrowsers zu erwerben. Das gefällt uns. Nach dem Herunterladen starten Sie es und Sie haben eine grafische Oberfläche, um die WMI-Klassen zu durchsuchen.

Wenn Sie etwas über die Festplattenkonfiguration eines Computers herausfinden möchten, drücken Sie die Tastenkombination Strg + F, um ein Suchfeld aufzurufen, geben Sie dann „logicaldisk“ ein und drücken Sie die Eingabetaste.

Dadurch gelangen Sie sofort zur Klasse Win32_LogicalDisk.

In der unteren Hälfte der Anwendung sehen Sie, dass wir zwei Instanzen der Klasse haben.

Sobald wir die gesuchte Klasse haben, ist das Abfragen von PowerShell einfach.

Get-WmiObject -Abfrage „SELECT * FROM Win32_LogicalDisk“

Ich habe diese Syntax schon eine Weile nicht mehr gesehen, da heutzutage Leute es vorziehen, die neue parametrisierte Syntax zu verwenden.

Get-WmiObject –Klasse Win32_LogicalDisk

Wenn Sie die Informationen von einem anderen Computer in Ihrem Netzwerk abrufen möchten, können Sie einfach den Parameter ComputerName verwenden.

Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper –Credential viperadministrator

Verwenden von CIM

Wenn man bedenkt, dass CIM nur unter Windows 8 und Server 2012 verfügbar ist, ist dies definitiv der richtige Weg.

Get-CimInstance –ClassName Win32_LogicalDisk

Bei Verwendung von Get-CimInstance gibt es auch eine Tabulatorvervollständigung für den Parameter –ClassName, was zeigt, dass sich die Bemühungen von Microsoft in Zukunft darauf konzentrieren werden.

Tatsächlich wurde WMI von einem völlig separaten Team innerhalb von Microsoft entwickelt, aber anschließend von den Verantwortlichen von PowerShell übernommen. Sie waren diejenigen, die bemerkten, dass es sehr schwierig sein wird, das Chaos zu beseitigen, das WMI hinterlassen hat. Um Abhilfe zu schaffen, versuchen sie, WMI und CIM besser verfügbar zu machen, indem sie Wrapper-Cmdlets schreiben, die WMI und CIM unter der Haube verwenden. Die einzige Möglichkeit zu überprüfen, ob ein Cmdlet ein Wrapper ist, besteht darin, sich die Dokumentation anzusehen. Das Cmdlet Get-Hotfix ist beispielsweise ein Wrapper für die Klasse Win32_QuickFixEngineering, wie in der Dokumentation beschrieben.

Das bedeutet, dass Sie die Hotfixes auf Remotecomputern mithilfe des Cmdlets Get-HotFix anstelle einer WMI-Abfrage abrufen können.

Get-HotFix –Computername localhost

Da hast du es also. Denken Sie daran, dass Sie ein dediziertes Cmdlet immer verwenden möchten, gefolgt von CIM, falls kein Cmdlet vorhanden ist. Wenn alles andere fehlschlägt oder Sie ältere Computer in Ihrer Umgebung haben, sollten Sie WMI verwenden. Das ist alles, was ich für diese Zeit habe. Wir sehen uns morgen für mehr PowerShell-Spaß.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia