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 Get-CimInstance
Cmdlet 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 InputObject-Parameter 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 die 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 ComputerName-Parameter oder den CimSession-Parameter angegeben wird.
Wenn der InputObject-Parameter angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der Parameter ComputerName 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 den 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_Process abgerufen.
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 Stammnamespace 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 durch einen Query-Parameter angegebene Abfrage verwendet wird.
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 mit dem Parameter "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 Get-CimInstance
Cmdlet ü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
gespeichert $y
. Die Variable $x
wird dann in einer Tabelle formatiert, die nur die Eigenschaften Name und KernelModeTime enthält, die Tabelle wird auf AutoSize festgelegt.
$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 "Server02" abgerufen.
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 Property-Parameter 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 mit dem Namen Server01 und Server02 mithilfe des New-CimSession
Cmdlets erstellt und die Sitzungsinformationen in einer Variablen namens $s
gespeichert. Der Inhalt der Variablen wird dann mithilfe des CimSession-Parameters übergebenGet-CimInstance
, um die CIM-Instanzen der Klasse mit dem Namen Win32_ComputerSystem abzurufen.
$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 WQL - oder der CQL-Abfragesprache an. Schließen Sie das WHERE
Schlüsselwort 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, Get-CimInstance
wird das Objekt vom Server mithilfe eines CIM-Abrufvorgangs anstelle eines Enumerations- oder Abfragevorgangs zurückgegeben. Die Verwendung eines GET CIM-Vorgangs ist effizienter als das Abrufen aller Instanzen und anschließendes Filtern.
Der InputObject-Parameter enumeriert keine Auflistungen. 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. Durch Die Angabe des KeyOnly-Parameters wird die Menge der über das Netzwerk übertragenen Daten reduziert.
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 Parameter OperationTimeoutSec auf einen Wert festgelegt ist, der kleiner als das robuste Verbindungsretrytimeout von 3 Minuten ist, können Netzwerkfehler, die mehr als der Wert des OperationTimeoutSec-Parameters dauern, nicht wiederhergestellt werden, da der Vorgang auf dem Server zu einem Timeout vor dem erneuten Herstellen der Verbindung 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 Schlüsseleigenschaften, 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 "
, einfache Anführungszeichen '
oder einen umgekehrten Schrägstrich \
enthält, 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 escapen, indem Sie sie in eckige Klammern []
einschließen: Prozent %
, Unterstrich _
oder öffnende eckige Klammer [
.
Sie können keine Metadatenabfrage verwenden, um eine Liste von Klassen oder eine Ereignisabfrage abzurufen. Verwenden Sie das Get-CimClass
Cmdlet, um eine Liste von Klassen abzurufen. Verwenden Sie das Register-CimIndicationEvent
Cmdlet, 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 auf einem Computer zu identifizieren, z. B. Datenträger oder Prozesse.
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 http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/
verwendet, und der Klassenname wird an ihn angefügt.
ResourceURI kann nur mit CIM-Sitzungen verwendet werden, die mit dem WSMan-Protokoll erstellt wurden, oder beim Angeben des ComputerName-Parameters , der eine CIM-Sitzung mit WSMan erstellt. Wenn Sie diesen Parameter ohne Angabe des ComputersName-Parameters angeben oder 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 Parameter "Filter" 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
Sie können ein CIM-Instanzobjekt an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt mindestens ein CIM-Instanzobjekt zurück, das eine Momentaufnahme der CIM-Instanzen auf dem CIM-Server darstellt.
Hinweise
PowerShell enthält die folgenden Aliase für Get-CimInstance
:
- Windows:
gcim
Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.