Get-CimInstance

Ottiene le istanze CIM di una classe da un server CIM.

Sintassi

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>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il Get-CimInstance cmdlet ottiene le istanze CIM di una classe da un server CIM. È possibile specificare il nome della classe o una query per questo cmdlet. Questo cmdlet restituisce uno o più oggetti istanza CIM che rappresentano uno snapshot delle istanze CIM presenti nel server CIM.

Se il parametro InputObject non viene specificato, il cmdlet funziona in uno dei modi seguenti:

  • Se non viene specificato né il parametro ComputerName né il parametro CimSession , questo cmdlet funziona in Strumentazione gestione Windows locale (WMI) usando una sessione COM (Component Object Model).
  • Se viene specificato il parametro ComputerName o il parametro CimSession, questo cmdlet funziona sul server CIM specificato dal parametro ComputerName o dal parametro CimSession.

Se si specifica il parametro InputObject , il cmdlet funziona in uno dei modi seguenti:

  • Se non viene specificato né il parametro ComputerName né il parametro CimSession , questo cmdlet usa la sessione CIM o il nome del computer dall'oggetto di input.
  • Se viene specificato il parametro ComputerName o il parametro CimSession, questo cmdlet usa il valore del parametro CimSession o il valore del parametro ComputerName.

Esempio

Esempio 1: Ottenere le istanze CIM di una classe specificata

In questo esempio vengono recuperate le istanze CIM di una classe denominata Win32_Process.

Get-CimInstance -ClassName Win32_Process

Esempio 2: Ottenere un elenco di spazi dei nomi da un server WMI

In questo esempio viene recuperato un elenco di spazi dei nomi nello spazio dei nomi Radice in un server WMI.

Get-CimInstance -Namespace root -ClassName __Namespace

Esempio 3: Ottenere istanze di una classe filtrata usando una query

In questo esempio vengono recuperate tutte le istanze CIM che iniziano con la lettera P di una classe denominata Win32_Process usando la query specificata da un parametro Query .

Get-CimInstance -Query "SELECT * from Win32_Process WHERE name LIKE 'P%'"

Esempio 4: Ottenere istanze di una classe filtrata usando un nome di classe e un'espressione di filtro

In questo esempio vengono recuperate tutte le istanze CIM che iniziano con la lettera P di una classe denominata Win32_Process usando il parametro Filter.

Get-CimInstance -ClassName Win32_Process -Filter "Name like 'P%'"

Esempio 5: Ottenere le istanze CIM con solo le proprietà chiave compilate

Questo esempio crea una nuova istanza CIM in memoria per una classe denominata Win32_Process con la proprietà @{ "Handle"=0 } chiave e la archivia in una variabile denominata $x. La variabile viene passata come istanza CIM al Get-CimInstance cmdlet per ottenere una particolare istanza.

$x = New-CimInstance -ClassName Win32_Process -Namespace root\cimv2 -Property @{ "Handle"=0 } -Key Handle -ClientOnly
Get-CimInstance -CimInstance $x

Esempio 6: Recuperare le istanze CIM e riutilizzarle

Questo esempio ottiene le istanze CIM di una classe denominata Win32_Process e le archivia nelle variabili $x e $y. La variabile $x viene quindi formattata in una tabella contenente solo le proprietà Name e KernelModeTime , la tabella impostata su AutoSize.

$x,$y = Get-CimInstance -ClassName Win32_Process
$x | Format-Table -Property Name,KernelModeTime -AutoSize

Name                 KernelModeTime
----                 --------------
System Idle Process 157238797968750

Esempio 7: Ottenere istanze CIM dal computer remoto

In questo esempio vengono recuperate le istanze CIM di una classe denominata Win32_ComputerSystem dai computer remoti denominati Server01 e Server02.

Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName Server01,Server02

Esempio 8: ottenere solo le proprietà chiave, anziché tutte le proprietà

In questo esempio vengono recuperate solo le proprietà chiave, riducendo le dimensioni dell'oggetto e del traffico di rete.

$x = Get-CimInstance -Class Win32_Process -KeyOnly
$x | Invoke-CimMethod -MethodName GetOwner

Esempio 9: Recupero solo di un subset di proprietà, anziché di tutte le proprietà

In questo esempio viene recuperato solo un subset di proprietà, che riduce le dimensioni dell'oggetto e del traffico di rete.

Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x = Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x | Invoke-CimMethod -MethodName GetOwner

L'istanza recuperata con il parametro Property può essere usata per eseguire altre operazioni CIM, ad esempio Set-CimInstance o Invoke-CimMethod.

Esempio 10: Ottenere l'istanza CIM usando la sessione CIM

Questo esempio crea una sessione CIM nei computer denominati Server01 e Server02 usando il New-CimSession cmdlet e archivia le informazioni sulla sessione in una variabile denominata $s. Il contenuto della variabile viene quindi passato tramite Get-CimInstance il parametro CimSession per ottenere le istanze CIM della classe denominata Win32_ComputerSystem.

$s = New-CimSession -ComputerName Server01,Server02
Get-CimInstance -ClassName Win32_ComputerSystem -CimSession $s

Parametri

-CimSession

Specifica la sessione CIM da usare per questo cmdlet. Immettere una variabile contenente la sessione CIM o un comando che crea o ottiene la sessione CIM, ad esempio i New-CimSession cmdlet o Get-CimSession . Per altre informazioni, vedere about_CimSession.

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ClassName

Specifica il nome della classe CIM per cui recuperare le istanze CIM. È possibile usare il completamento tramite tabulazione per esplorare l'elenco delle classi, perché PowerShell ottiene un elenco di classi dal server WMI locale per fornire un elenco di nomi di classi.

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

-ComputerName

Specifica il computer in cui si desidera eseguire l'operazione CIM. È possibile specificare un nome di dominio completo (FQDN), un nome NetBIOS o un indirizzo IP. Se non si specifica questo parametro, il cmdlet esegue l'operazione nel computer locale usando Component Object Model (COM).

Se si specifica questo parametro, il cmdlet crea una sessione temporanea nel computer specificato usando il protocollo WsMan.

Se vengono eseguite più operazioni nello stesso computer, connettersi usando una sessione CIM per ottenere prestazioni migliori.

Type:String[]
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Filter

Specifica una clausola where da utilizzare come filtro. Specificare la clausola nel linguaggio di query WQL o CQL . Non includere la WHERE parola chiave nel valore del parametro .

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

-InputObject

Specifica un oggetto istanza CIM da utilizzare come input.

Se si usa già un oggetto istanza CIM, è possibile usare questo parametro per passare l'oggetto istanza CIM per ottenere lo snapshot più recente dal server CIM. Quando si passa un oggetto istanza CIM come input, Get-CimInstance restituisce l'oggetto dal server usando un'operazione GET CIM anziché un'operazione di enumerazione o query. L'uso di un'operazione CIM get è più efficiente rispetto al recupero di tutte le istanze e quindi al filtro.

Il parametro InputObject non enumera le raccolte. Se viene passata una raccolta, viene generato un errore. Quando si utilizzano raccolte, inviare tramite pipe l'input per enumerare i valori.

Se la classe CIM non implementa l'operazione get, specificando il parametro InputObject viene restituito un errore.

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

-KeyOnly

Indica che vengono restituiti solo gli oggetti con proprietà chiave popolate. Se si specifica il parametro KeyOnly , si riduce la quantità di dati trasferiti in rete.

Utilizzare il parametro KeyOnly per restituire solo una piccola parte dell'oggetto, che può essere usata per altre operazioni, ad esempio i Set-CimInstance cmdlet o Get-CimAssociatedInstance .

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

-Namespace

Specifica lo spazio dei nomi della classe CIM.

Lo spazio dei nomi predefinito è root/cimv2. È possibile usare il completamento della scheda per esplorare l'elenco degli spazi dei nomi, perché PowerShell ottiene un elenco di spazi dei nomi dal server WMI locale per fornire l'elenco degli spazi dei nomi.

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

-OperationTimeoutSec

Specifica la quantità di tempo in cui il cmdlet attende una risposta dal computer. Per impostazione predefinita, il valore di questo parametro è 0, il che significa che il cmdlet usa il valore di timeout predefinito per il server.

Se il parametro OperationTimeoutSec è impostato su un valore inferiore al timeout di tentativo di connessione affidabile di 3 minuti, gli errori di rete che durano più del valore del parametro OperationTimeoutSec non sono recuperabili, perché l'operazione sul server scade prima che il client possa riconnettersi.

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

Specifica un set di proprietà dell'istanza da recuperare. Usare questo parametro quando è necessario ridurre le dimensioni dell'oggetto restituito, in memoria o in rete. L'oggetto restituito contiene anche le proprietà chiave anche se non sono state elencate usando il parametro Property . Sono presenti altre proprietà della classe, ma non vengono popolate.

Type:String[]
Aliases:SelectProperties
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Query

Specifica una query da eseguire nel server CIM. Se il valore specificato contiene virgolette doppie , virgolette "'singole o una barra \rovesciata , è necessario usare l'escape di tali caratteri anteponendo loro il carattere barra rovesciata. Se il valore specificato usa l'operatore WQL LIKE , è necessario eseguire l'escape dei caratteri seguenti racchiudendoli tra parentesi quadre []: percentuale %, sottolineatura _o parentesi quadra [aperta.

Non è possibile utilizzare una query di metadati per recuperare un elenco di classi o una query di eventi. Per recuperare un elenco di classi, usare il Get-CimClass cmdlet . Per recuperare una query di eventi, usare il Register-CimIndicationEvent cmdlet .

È possibile specificare il dialetto della query usando il parametro QueryDialect .

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

-QueryDialect

Specifica il linguaggio di query utilizzato per il parametro Query. I valori accettabili per questo parametro sono: WQL o CQL. Il valore predefinito è WQL.

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

-ResourceUri

Specifica l'URI (Uniform Resource Identifier) della classe di risorse o dell'istanza di risorsa. L'URI viene usato per identificare un tipo specifico di risorsa, ad esempio i dischi o i processi, in un computer specifico.

Un URI è costituito da un prefisso e un percorso di una risorsa. Ad esempio:

  • http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
  • http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

Per impostazione predefinita, se non si specifica questo parametro, viene usato l'URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ della risorsa standard DMTF e il nome della classe viene aggiunto.

ResourceURI può essere usato solo con le sessioni CIM create usando il protocollo WSMan o quando si specifica il parametro ComputerName , che crea una sessione CIM usando WSMan. Se si specifica questo parametro senza specificare il parametro ComputerName o se si specifica una sessione CIM creata usando il protocollo DCOM, verrà visualizzato un errore, perché il protocollo DCOM non supporta il parametro ResourceURI .

Se vengono specificati sia il parametro ResourceUri che il parametro Filter , il parametro Filter viene ignorato.

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

-Shallow

Indica che le istanze di una classe vengono restituite senza includere le istanze di qualsiasi classe figlio. Per impostazione predefinita, il cmdlet restituisce le istanze di una classe e le relative classi figlio.

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

Input

CimInstance

È possibile inviare tramite pipe un oggetto istanza CIM a questo cmdlet.

Output

CimInstance

Questo cmdlet restituisce uno o più oggetti istanza CIM che rappresentano uno snapshot delle istanze CIM nel server CIM.

Note

PowerShell include gli alias seguenti per Get-CimInstance:

  • Windows:
    • gcim

Questo cmdlet è disponibile solo nelle piattaforme Windows.