Freigeben über


about_WMI_Cmdlets

Kurze Beschreibung

Enthält Hintergrundinformationen über die Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) und Windows PowerShell.

Lange Beschreibung

Dieses Thema enthält Informationen zur WMI-Technologie, den WMI-Cmdlets für Windows PowerShell, WMI-basiertes Remoting, WMI-Zugriffstasten und WMI-Problembehandlung. Außerdem enthält dieses Thema Links zu weiteren Informationen über WMI.

INFORMATIONEN ZU WMI

Die Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) ist die Microsoft-Implementierung von WBEM (Web-Based Enterprise Management). Hierbei handelt es sich um eine Brancheninitiative zum Entwickeln einer Standardtechnologie für den Zugriff auf Verwaltungsinformationen in einer Unternehmensumgebung. WMI verwendet den Branchenstandard %%amp;quot;Common Information Model (CIM)%%amp;quot; zum Darstellen von Systemen, Anwendungen, Netzwerken, Geräten und anderen verwalteten Komponenten. CIM wird von der Distributed Management Task Force (DMTF) entwickelt und verwaltet. Sie können WMI verwenden, um lokale und Remotecomputer zu verwalten. Sie können z. B. WMI verwenden, um Folgendes auszuführen:

  • Starten Sie einen Prozess auf einem Remotecomputer.
  • Starten Sie einen Computer remote neu.
  • Dient zum Abrufen einer Liste der Anwendungen, die auf einem lokalen oder Remotecomputer installiert sind.
  • Abfragen der Windows-Ereignisprotokolle auf einem lokalen oder Remotecomputer.

WMI-CMDLETS FÜR WINDOWS POWERSHELL

Windows PowerShell implementiert WMI-Funktionen über eine Reihe von Cmdlets, die standardmäßig in Windows PowerShell verfügbar sind. Sie können diese Cmdlets verwenden, um die End-to-End-Aufgaben auszuführen, die zum Verwalten lokaler und Remotecomputer erforderlich sind.

Die folgenden WMI-Cmdlets sind enthalten.

Cmdlet Beschreibung
Get-WmiObject Ruft Instanzen von WMI-Klassen oder -Informationen ab
informationen zu den verfügbaren Klassen.
Invoke-WmiMethod Ruft WMI-Methoden auf.
Register-WmiEvent Abonniert ein WMI-Ereignis.
Remove-WmiObject Löscht WMI-Klassen und -Instanzen.
Set-WmiInstance Erstellt oder ändert Instanzen von WMI-Klassen.

BEISPIELBEFEHLE

Der folgende Befehl zeigt die BIOS-Informationen für den lokalen Computer an.

C:\PS> get-wmiobject win32_bios | format-list *

Der folgende Befehl zeigt Informationen zum WinRM-Dienst für drei Remotecomputer an.

$wql = "select * from win32_service where name='WinRM'"
get-wmiobject -query $wql -computername server01, server01, server03

Der folgende komplexere Befehl beendet alle Instanzen eines Programms.

C:\PS> notepad.exe
C:\PS> $wql = "select * from win32_process where name='notepad.exe'"
C:\PS> $np = get-wmiobject -query $wql
C:\PS> $np | remove-wmiobject

WMI-BASIERTES REMOTING

Obwohl die Möglichkeit zum Verwalten eines lokalen Systems über WMI nützlich ist, ist es die Remoting-Funktionen, die WMI zu einem leistungsfähigen Verwaltungstool machen. WMI verwendet das Distributed Component Object Model (DCOM) von Microsoft, um eine Verbindung mit systemen herzustellen und zu verwalten. Möglicherweise müssen Sie einige Systeme so konfigurieren, dass DCOM-Verbindungen zugelassen werden. Firewalleinstellungen und gesperrte DCOM-Berechtigungen können die Fähigkeit von WMI zur Remoteverwaltung von Systemen blockieren.

WMI-TYPBESCHLEUNIGER

Windows PowerShell enthält WMI-Typinfos. Diese WMI-Typbeschleuniger (Tastenkombinationen) ermöglichen einen direkteren Zugriff auf WMI-Objekte, als ein Nicht-Typ-Zugriffstastenansatz zulässt.

Die folgenden Zugriffstasten werden mit WMI unterstützt:

[WMISEARCHER] – Eine Verknüpfung zum Suchen nach WMI-Objekten.

[WMICLASS] – Eine Verknüpfung für den Zugriff auf die statischen Eigenschaften und Methoden einer Klasse.

[WMI] – Eine Verknüpfung zum Abrufen einer einzelnen Instanz einer Klasse.

[WMISEARCHER] ist ein Typbeschleuniger für eine ManagementObjectSearcher. Es kann einen Zeichenfolgenkonstruktor dauern, um einen Sucher zu erstellen, für den Sie dann eine GET() ausführen können.

Zum Beispiel:

PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto

count  __PATH                                              name
-----  ------                                              ----
1105   \\SERVER01\root\cimv2:Win32_Process.Handle="3724"   PowerShell...
1132   \\SERVER01\root\cimv2:Win32_Process.Handle="1388"   winlogon.exe
1495   \\SERVER01\root\cimv2:Win32_Process.Handle="2852"   iexplore.exe
1699   \\SERVER01\root\cimv2:Win32_Process.Handle="1204"   OUTLOOK.EXE
1719   \\SERVER01\root\cimv2:Win32_Process.Handle="1912"   iexplore.exe
2579   \\SERVER01\root\cimv2:Win32_Process.Handle="1768"   svchost.exe

[WMICLASS] ist eine Typbeschleuniger für ManagementClass. Dies hat einen Zeichenfolgenkonstruktor, der einen lokalen oder absoluten WMI-Pfad zu einer WMI-Klasse verwendet und ein Objekt zurückgibt, das an diese Klasse gebunden ist.

Zum Beispiel:

PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
PS> $c |fl *
Name             : Win32_Process
__GENUS          : 1
__CLASS          : Win32_Process
__SUPERCLASS     : CIM_Process
__DYNASTY        : CIM_ManagedSystemElement
__RELPATH        : Win32_Process
__PROPERTY_COUNT : 45
__DERIVATION     : {CIM_Process, CIM_LogicalElement,
                   CIM_ManagedSystemElement}
__SERVER         : SERVER01
__NAMESPACE      : ROOT\cimv2
__PATH           : \\SERVER01\ROOT\cimv2:Win32_Process

[WMI] ist eine Typbeschleuniger für ManagementObject. Dies hat einen Zeichenfolgenkonstruktor, der einen lokalen oder absoluten WMI-Pfad zu einer WMI-Instanz verwendet und ein Objekt zurückgibt, das an diese Instanz gebunden ist.

Zum Beispiel:

PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE

WMI-PROBLEMBEHANDLUNG

Die folgenden Probleme sind die häufigsten Probleme, die auftreten können, wenn Sie versuchen, eine Verbindung mit einem Remotecomputer herzustellen.

Problem 1: Der Remotecomputer ist nicht online.

Wenn ein Computer offline ist, können Sie mit WMI keine Verbindung mit dem Computer herstellen. Sie erhalten ggf. eine Fehlermeldung der folgenden Art:

Remote server machine does not exist or is unavailable

Wenn Diese Fehlermeldung angezeigt wird, überprüfen Sie, ob der Computer online ist. Versuchen Sie, den Remotecomputer zu pingen.

Problem 2: Sie verfügen nicht über lokale Administratorrechte auf dem Remotecomputer.

Um WMI remote zu verwenden, müssen Sie über lokale Administratorrechte auf dem Remotecomputer verfügen. Andernfalls wird der Zugriff auf diesen Computer verweigert.

So überprüfen Sie die Namespacesicherheit:

  1. Klicken Sie auf "Start", klicken Sie mit der rechten Maustaste auf "Arbeitsplatz", und klicken Sie dann auf "Verwalten".
  2. Erweitern Sie unter Computerverwaltung Dienste und Anwendungen, klicken Sie mit der rechten Maustaste auf WMI-Steuerelement, und klicken Sie dann auf Eigenschaften.
  3. Klicken Sie im Dialogfeld Eigenschaften von WMI-Kontrolle auf die Registerkarte Sicherheit .

Problem 3: Eine Firewall blockiert den Zugriff auf den Remotecomputer.

WMI verwendet die Protokolle DCOM (Distributed COM) und RPC (Remote Procedure Call) zum Durchlaufen des Netzwerks. Standardmäßig blockieren viele Firewalls DCOM- und RPC-Datenverkehr. Wenn Ihre Firewall diese Protokolle blockiert, schlägt die Verbindung fehl. Beispielsweise ist die Windows-Firewall in Microsoft Windows XP Service Pack 2 so konfiguriert, dass automatisch alle unerwünschten Netzwerkdatenverkehr, einschließlich DCOM und WMI, blockiert wird. In der Standardkonfiguration lehnt die Windows-Firewall eine eingehende WMI-Anforderung ab, und Sie erhalten die folgende Fehlermeldung:

Remote server machine does not exist or is unavailable

Weitere Informationen