Get-CimInstance
Ruft die CIM-Instanzen einer Klasse von einem CIM-Server ab.
Syntax
Get-CimInstance
[-ClassName] <String>
[-ComputerName <String[]>]
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-QueryDialect <String>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
-ResourceUri <Uri>
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
[-ResourceUri <Uri>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
-Query <String>
[-QueryDialect <String>]
[-Shallow]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
[-ClassName] <String>
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-QueryDialect <String>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
[-ResourceUri <Uri>]
[-OperationTimeoutSec <UInt32>]
[-InputObject] <CimInstance>
[<CommonParameters>]
Get-CimInstance
[-ResourceUri <Uri>]
[-ComputerName <String[]>]
[-OperationTimeoutSec <UInt32>]
[-InputObject] <CimInstance>
[<CommonParameters>]
Get-CimInstance
-ResourceUri <Uri>
[-ComputerName <String[]>]
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
[-ResourceUri <Uri>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
-Query <String>
[-QueryDialect <String>]
[-Shallow]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.
Das Cmdlet Get-CimInstance
ruft die CIM-Instanzen einer Klasse von einem CIM-Server ab. Sie können entweder den Klassennamen oder eine Abfrage für dieses Cmdlet angeben. Dieses Cmdlet gibt mindestens ein CIM-Instanzobjekt zurück, das eine Momentaufnahme der CIM-Instanzen darstellt, die auf dem CIM-Server vorhanden sind.
Wenn der parameter InputObject nicht angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der parameter ComputerName noch der CimSession Parameter angegeben ist, funktioniert dieses Cmdlet unter Verwendung einer COM-Sitzung (Component Object Model) für lokale Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI).
- Wenn entweder der parameter ComputerName oder der CimSession Parameter angegeben ist, funktioniert dieses Cmdlet mit dem CIM-Server, der entweder durch den parameter ComputerName oder den parameter CimSession angegeben wird.
Wenn der parameter InputObject angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der ComputerName Parameter noch der CimSession Parameter angegeben wird, verwendet dieses Cmdlet den CIM-Sitzungs- oder Computernamen aus dem Eingabeobjekt.
- Wenn der parameter ComputerName oder der CimSession Parameter angegeben ist, verwendet dieses Cmdlet entweder den CimSession-Parameterwert oder ComputerName Parameterwert.
Beispiele
Beispiel 1: Abrufen der CIM-Instanzen einer angegebenen Klasse
In diesem Beispiel werden die CIM-Instanzen einer Klasse mit dem Namen Win32_Processabgerufen.
Get-CimInstance -ClassName Win32_Process
Beispiel 2: Abrufen einer Liste von Namespaces von einem WMI-Server
In diesem Beispiel wird eine Liste von Namespaces unter dem Root Namespace auf einem WMI-Server abgerufen.
Get-CimInstance -Namespace root -ClassName __Namespace
Beispiel 3: Abrufen von Instanzen einer Klasse, die mithilfe einer Abfrage gefiltert wird
In diesem Beispiel werden alle CIM-Instanzen abgerufen, die mit dem Buchstaben P einer Klasse mit dem Namen Win32_Process beginnen, wobei die abfrage verwendet wird, die durch einen Query Parameter angegeben wurde.
Get-CimInstance -Query "SELECT * from Win32_Process WHERE name LIKE 'P%'"
Beispiel 4: Abrufen von Instanzen einer Klasse, die mithilfe eines Klassennamens und eines Filterausdrucks gefiltert wird
In diesem Beispiel werden alle CIM-Instanzen abgerufen, die mit dem Buchstaben P einer Klasse mit dem Namen Win32_Process "Filter" beginnen.
Get-CimInstance -ClassName Win32_Process -Filter "Name like 'P%'"
Beispiel 5: Abrufen der CIM-Instanzen mit nur Schlüsseleigenschaften, die ausgefüllt sind
In diesem Beispiel wird eine neue CIM-Instanz im Arbeitsspeicher für eine Klasse namens Win32_Process mit der Schlüsseleigenschaft @{ "Handle"=0 }
erstellt und in einer Variablen namens $x
gespeichert. Die Variable wird als CIM-Instanz an das cmdlet Get-CimInstance
übergeben, um eine bestimmte Instanz abzurufen.
$x = New-CimInstance -ClassName Win32_Process -Namespace root\cimv2 -Property @{ "Handle"=0 } -Key Handle -ClientOnly
Get-CimInstance -CimInstance $x
Beispiel 6: Abrufen von CIM-Instanzen und Wiederverwenden
In diesem Beispiel werden die CIM-Instanzen einer Klasse mit dem Namen Win32_Process und in den Variablen $x
und $y
gespeichert. Die Variable $x
wird dann in einer Tabelle formatiert, die nur die eigenschaften Name und KernelModeTime enthält, die Tabelle auf AutoSizefestgelegt ist.
$x,$y = Get-CimInstance -ClassName Win32_Process
$x | Format-Table -Property Name,KernelModeTime -AutoSize
Name KernelModeTime
---- --------------
System Idle Process 157238797968750
Beispiel 7: Abrufen von CIM-Instanzen vom Remotecomputer
In diesem Beispiel werden die CIM-Instanzen einer Klasse namens Win32_ComputerSystem von den Remotecomputern Server01 und Server02abgerufen.
Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName Server01,Server02
Beispiel 8: Abrufen nur der Schlüsseleigenschaften anstelle aller Eigenschaften
In diesem Beispiel werden nur die Schlüsseleigenschaften abgerufen, wodurch die Größe des Objekts und des Netzwerkdatenverkehrs reduziert wird.
$x = Get-CimInstance -Class Win32_Process -KeyOnly
$x | Invoke-CimMethod -MethodName GetOwner
Beispiel 9: Abrufen einer Teilmenge von Eigenschaften anstelle aller Eigenschaften
In diesem Beispiel wird nur eine Teilmenge von Eigenschaften abgerufen, wodurch die Größe des Objekts und des Netzwerkdatenverkehrs reduziert wird.
Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x = Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x | Invoke-CimMethod -MethodName GetOwner
Die mit dem Parameter Property abgerufene Instanz kann verwendet werden, um andere CIM-Vorgänge auszuführen, z. B. Set-CimInstance
oder Invoke-CimMethod
.
Beispiel 10: Abrufen der CIM-Instanz mithilfe der CIM-Sitzung
In diesem Beispiel wird eine CIM-Sitzung auf den Computern namens Server01 und Server02- mithilfe des Cmdlets New-CimSession
erstellt und die Sitzungsinformationen in einer Variablen namens $s
gespeichert. Der Inhalt der Variablen wird dann mithilfe des parameters CimSession an Get-CimInstance
übergeben, um die CIM-Instanzen der Klasse mit dem Namen Win32_ComputerSystemabzurufen.
$s = New-CimSession -ComputerName Server01,Server02
Get-CimInstance -ClassName Win32_ComputerSystem -CimSession $s
Parameter
-CimSession
Gibt die CIM-Sitzung an, die für dieses Cmdlet verwendet werden soll. Geben Sie eine Variable ein, die die CIM-Sitzung oder einen Befehl enthält, der die CIM-Sitzung erstellt oder abruft, z. B. die New-CimSession
oder Get-CimSession
Cmdlets. Weitere Informationen finden Sie unter about_CimSession.
Typ: | CimSession[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ClassName
Gibt den Namen der CIM-Klasse an, für die die CIM-Instanzen abgerufen werden sollen. Sie können den Tabstoppabschluss verwenden, um die Liste der Klassen zu durchsuchen, da PowerShell eine Liste von Klassen vom lokalen WMI-Server abruft, um eine Liste der Klassennamen bereitzustellen.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ComputerName
Gibt den Computer an, auf dem der CIM-Vorgang ausgeführt werden soll. Sie können einen vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN), einen NetBIOS-Namen oder eine IP-Adresse angeben. Wenn Sie diesen Parameter nicht angeben, führt das Cmdlet den Vorgang auf dem lokalen Computer mithilfe des Component Object Model (COM) aus.
Wenn Sie diesen Parameter angeben, erstellt das Cmdlet mithilfe des WsMan-Protokolls eine temporäre Sitzung auf dem angegebenen Computer.
Wenn mehrere Vorgänge auf demselben Computer ausgeführt werden, stellen Sie die Verbindung mit einer CIM-Sitzung her, um eine bessere Leistung zu erzielen.
Typ: | String[] |
Aliase: | CN, ServerName |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Filter
Gibt eine Where-Klausel an, die als Filter verwendet werden soll. Geben Sie die Klausel entweder in der WHERE
nicht in den Wert des Parameters ein.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt ein CIM-Instanzobjekt an, das als Eingabe verwendet werden soll.
Wenn Sie bereits mit einem CIM-Instanzobjekt arbeiten, können Sie diesen Parameter verwenden, um das CIM-Instanzobjekt zu übergeben, um die neueste Momentaufnahme vom CIM-Server abzurufen. Wenn Sie ein CIM-Instanzobjekt als Eingabe übergeben, gibt Get-CimInstance
das Objekt mithilfe eines CIM-Abrufvorgangs vom Server zurück, anstelle eines Enumerations- oder Abfragevorgangs. Die Verwendung eines GET CIM-Vorgangs ist effizienter als das Abrufen aller Instanzen und anschließendes Filtern.
Der parameter InputObject wird nicht über Auflistungen aufgezählt. Wenn eine Auflistung übergeben wird, wird ein Fehler ausgelöst. Wenn Sie mit Sammlungen arbeiten, führen Sie die Eingabe weiter, um die Werte aufzählen zu können.
Wenn die CIM-Klasse den Get-Vorgang nicht implementiert, gibt die Angabe des InputObject--Parameters einen Fehler zurück.
Typ: | CimInstance |
Aliase: | CimInstance |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-KeyOnly
Gibt an, dass nur Objekte mit aufgefüllten Schlüsseleigenschaften zurückgegeben werden. Die Angabe des KeyOnly- Parameters reduziert die Menge der über das Netzwerk übertragenen Daten.
Verwenden Sie den KeyOnly--Parameter, um nur einen kleinen Teil des Objekts zurückzugeben, der für andere Vorgänge verwendet werden kann, z. B. die Set-CimInstance
- oder Get-CimAssociatedInstance
-Cmdlets.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Namespace
Gibt den Namespace der CIM-Klasse an.
Der Standardnamespace ist root/cimv2. Sie können die Registerkartenabschluss verwenden, um die Liste der Namespaces zu durchsuchen, da PowerShell eine Liste von Namespaces vom lokalen WMI-Server abruft, um die Liste der Namespaces bereitzustellen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-OperationTimeoutSec
Gibt die Zeitspanne an, die das Cmdlet auf eine Antwort vom Computer wartet. Standardmäßig ist der Wert dieses Parameters 0, was bedeutet, dass das Cmdlet den Standardtimeoutwert für den Server verwendet.
Wenn der OperationTimeoutSec-Parameter auf einen Wert festgelegt ist, der kleiner als das robuste Verbindungsretrytimeout von 3 Minuten ist, können Netzwerkfehler, die mehr als den Wert des OperationTimeoutSec Parameter dauern, nicht wiederhergestellt werden, da der Vorgang auf dem Server zu einem Timeout vor dem erneuten Herstellen der Verbindung durch den Client führen kann.
Typ: | UInt32 |
Aliase: | OT |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Property
Gibt einen Satz von Instanzeigenschaften an, die abgerufen werden sollen. Verwenden Sie diesen Parameter, wenn Sie die Größe des zurückgegebenen Objekts reduzieren müssen, entweder im Arbeitsspeicher oder über das Netzwerk. Das zurückgegebene Objekt enthält auch die wichtigsten Eigenschaften, auch wenn Sie sie nicht mit dem Parameter Property aufgelistet haben. Andere Eigenschaften der Klasse sind vorhanden, aber sie werden nicht aufgefüllt.
Typ: | String[] |
Aliase: | SelectProperties |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Query
Gibt eine Abfrage an, die auf dem CIM-Server ausgeführt werden soll. Wenn der angegebene Wert doppelte Anführungszeichen "
enthält, einfache Anführungszeichen '
oder einen umgekehrten Schrägstrich \
, müssen Sie diese Zeichen escapen, indem Sie sie dem umgekehrten Schrägstrich voranstellen. Wenn der angegebene Wert den WQL-LIKE-Operator verwendet, müssen Sie die folgenden Zeichen escapeen, indem Sie sie in eckige Klammern []
: Prozent %
, Unterstrich _
oder öffnende eckige Klammer [
.
Sie können keine Metadatenabfrage verwenden, um eine Liste von Klassen oder eine Ereignisabfrage abzurufen. Verwenden Sie das Cmdlet Get-CimClass
, um eine Liste von Klassen abzurufen. Verwenden Sie das Cmdlet Register-CimIndicationEvent
, um eine Ereignisabfrage abzurufen.
Sie können den Abfragedialekt mithilfe des QueryDialect--Parameters angeben.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-QueryDialect
Gibt die Abfragesprache an, die für den Abfrageparameter verwendet wird. Die zulässigen Werte für diesen Parameter sind: WQL- oder CQL-. Der Standardwert ist WQL-.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ResourceUri
Gibt den URI (Uniform Resource Identifier) der Ressourcenklasse oder -instanz an. Der URI wird verwendet, um einen bestimmten Ressourcentyp zu identifizieren, z. B. Datenträger oder Prozesse, auf einem Computer.
Ein URI besteht aus einem Präfix und einem Pfad zu einer Ressource. Zum Beispiel:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings
Wenn Sie diesen Parameter nicht angeben, wird standardmäßig der DMTF-Standardressourcen-URI verwendet, http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/
verwendet wird und der Klassenname an ihn angefügt wird.
ResourceURI- kann nur mit CIM-Sitzungen verwendet werden, die mit dem WSMan-Protokoll erstellt wurden, oder beim Angeben des ComputerName Parameter, der eine CIM-Sitzung mit WSMan erstellt. Wenn Sie diesen Parameter angeben, ohne den parameter ComputerName anzugeben, oder wenn Sie eine MIT DCOM-Protokoll erstellte CIM-Sitzung angeben, wird ein Fehler angezeigt, da das DCOM-Protokoll den ResourceURI Parameter nicht unterstützt.
Wenn sowohl der parameter ResourceUri als auch der parameter Filter angegeben werden, wird der Filter Parameter ignoriert.
Typ: | Uri |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Shallow
Gibt an, dass die Instanzen einer Klasse zurückgegeben werden, ohne die Instanzen untergeordneter Klassen einzugeben. Standardmäßig gibt das Cmdlet die Instanzen einer Klasse und seiner untergeordneten Klassen zurück.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
CIM Instance
Dieses Cmdlet akzeptiert ein Eingabeobjekt, das mit dem InputObject-Parameter angegeben ist.
Ausgaben
CIM Instance
Dieses Cmdlet gibt mindestens ein CIM-Instanzobjekt zurück, das eine Momentaufnahme der CIM-Instanzen auf dem CIM-Server darstellt.