Geek School: Verwenden von PowerShell zum Abrufen von Computerinformationen

Inhaltsverzeichnis:

Video: Geek School: Verwenden von PowerShell zum Abrufen von Computerinformationen

Video: Geek School: Verwenden von PowerShell zum Abrufen von Computerinformationen
Video: So setzt du auf deinem iPhone dein Apple ID Passwort zurück | Apple Support 2024, März
Geek School: Verwenden von PowerShell zum Abrufen von Computerinformationen
Geek School: Verwenden von PowerShell zum Abrufen von Computerinformationen
Anonim
WMI und sein neuerer Bruder CIM können beide zur Verwaltung der Windows-Computer in Ihrer Umgebung verwendet werden. Aber kennen Sie den Unterschied zwischen ihnen? Begleiten Sie uns, wenn wir einen Blick darauf werfen.
WMI und sein neuerer Bruder CIM können beide zur Verwaltung der Windows-Computer in Ihrer Umgebung verwendet werden. Aber kennen Sie den Unterschied zwischen ihnen? Begleiten Sie uns, wenn wir einen Blick darauf werfen.

Lesen Sie unbedingt die vorherigen Artikel der Serie:

  • Erfahren Sie, wie Sie Windows mit PowerShell automatisieren
  • Verwenden von Cmdlets in PowerShell
  • Informationen zum Verwenden von Objekten in PowerShell
  • Lernen Sie das Formatieren, Filtern und Vergleichen in PowerShell
  • Informationen zum Verwenden von Remoting in PowerShell

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

Einführung

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

WMI besteht aus einem Repository, das Klassen enthält, die Komponenten darstellen, die in Ihrem Computer verwaltet werden können. Damit meinen wir, nur weil WMI über eine Win32_Battery-Klasse verfügt, bedeutet dies nicht, dass Ihr Computer eine Batterie enthält. Diese Klassen können dann lokal oder sogar über ein Netzwerk nach Informationen abgefragt werden, wobei eine Abfragesprache verwendet wird, die SQL sehr ähnlich ist und als WQL bezeichnet wird. Es ist jedoch bekannt, dass WMI sehr unzuverlässig ist, hauptsächlich aufgrund der Tatsache, dass es auf RPC (Remote Procedure Calls) basiert, die einige verrückte Dinge mit den Ports tun, über die sie kommunizieren.

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

WMI verwenden

Der schnellste und einfachste Weg, um die Informationen zu ermitteln, die Ihnen über WMI zur Verfügung stehen, besteht darin, eine Kopie eines beliebigen freien WMI-Objektbrowsers zu erhalten. Wir mögen dieses hier. Starten Sie nach dem Download die grafische Benutzeroberflä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 "Logicdisk" ein und drücken Sie die Eingabetaste.
Wenn Sie etwas über die Festplattenkonfiguration eines Computers herausfinden möchten, drücken Sie die Tastenkombination Strg + F, um ein Suchfeld aufzurufen, geben Sie "Logicdisk" ein und drücken Sie die Eingabetaste.

Sofort gelangen Sie zur Klasse Win32_LogicalDisk.

In der unteren Hälfte der Anwendung sehen Sie zwei Instanzen der Klasse.
In der unteren Hälfte der Anwendung sehen Sie zwei Instanzen der Klasse.
Sobald wir die gewünschte Klasse haben, ist das Abfragen von PowerShell einfach.
Sobald wir die gewünschte Klasse haben, ist das Abfragen von PowerShell einfach.

Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”

Ich habe diese Syntax seit einiger Zeit nicht mehr gesehen, und die Leute bevorzugen es, die neue parametrisierte Syntax zu verwenden.
Ich habe diese Syntax seit einiger Zeit nicht mehr gesehen, und die Leute bevorzugen es, die neue parametrisierte Syntax zu verwenden.

Get-WmiObject –Class Win32_LogicalDisk

Wenn Sie die Informationen von einem anderen Computer in Ihrem Netzwerk abrufen möchten, können Sie einfach den Parameter ComputerName verwenden.
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

Image
Image

CIM verwenden

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

Get-CimInstance –ClassName Win32_LogicalDisk

Bei der Verwendung von Get-CimInstance gibt es auch den Tab-Completion für den Parameter –ClassName. Dies zeigt, dass hier die Bemühungen von Microsoft im Mittelpunkt stehen.
Bei der Verwendung von Get-CimInstance gibt es auch den Tab-Completion für den Parameter –ClassName. Dies zeigt, dass hier die Bemühungen von Microsoft im Mittelpunkt stehen.

Tatsächlich wurde WMI von einem völlig separaten Team innerhalb von Microsoft entwickelt, später jedoch von den Verantwortlichen von PowerShell übernommen. Sie waren es, die gemerkt haben, dass es sehr schwer sein wird, das WMI 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, um zu überprüfen, ob ein Cmdlet ein Wrapper ist, besteht in der Dokumentation. Das Cmdlet Get-Hotfix ist beispielsweise ein Wrapper für die Klasse Win32_QuickFixEngineering, wie in der Dokumentation dargestellt.

Das heißt, Sie können die Hotfixes auf Remote-Computern mithilfe des Cmdlets Get-HotFix anstelle einer WMI-Abfrage abrufen.
Das heißt, Sie können die Hotfixes auf Remote-Computern mithilfe des Cmdlets Get-HotFix anstelle einer WMI-Abfrage abrufen.

Get-HotFix –ComputerName localhost

Empfohlen: