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

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 $xgespeichert. 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 $sgespeichert. 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.

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputerName

Gibt den Computer an, auf dem der CIM-Vorgang ausgeführt werden soll. Sie können einen vollqualifizierten Do Standard namen (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.

Type:String[]
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 die WHERE Schlüsselwort (keyword) nicht in den Wert des Parameters ein.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 neuesten 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.

Type:CimInstance
Aliases:CimInstance
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:SelectProperties
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

CimInstance

Sie können ein CIM-Instanzobjekt an dieses Cmdlet weiterleiten.

Ausgaben

CimInstance

Dieses Cmdlet gibt mindestens ein CIM-Instanzobjekt zurück, das eine Momentaufnahme der CIM-Instanzen auf dem CIM-Server darstellt.