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 cmdlet Get-CimInstance
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 NomeComputer né il parametro CimSession, questo cmdlet funziona in WMI (Windows Management Instrumentation) Locale usando una sessione COM (Component Object Model).
- Se viene specificato il parametro ComputerName o il parametro CimSession, questo cmdlet viene eseguito sul server CIM specificato da uno dei parametri ComputerName o CimSession.
Se viene specificato il parametro InputObject, il cmdlet funziona in uno dei modi seguenti:
- Se non viene specificato né il parametro NomeComputer 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 NomeComputer valore del parametro.
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 nel 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à chiave @{ "Handle"=0 }
e la archivia in una variabile denominata $x
. La variabile viene passata come istanza CIM al cmdlet Get-CimInstance
per ottenere una determinata istanza.
$instance = @{
ClassName = 'Win32_Process'
Namespace = 'root/cimv2'
Properties = @{
Handle = 0
}
Key = 'Handle'
ClientOnly = $true
}
$x = New-CimInstance @instance
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 cmdlet New-CimSession
e archivia le informazioni della sessione in una variabile denominata $s
. Il contenuto della variabile viene quindi passato a Get-CimInstance
usando 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 cmdlet New-CimSession
o Get-CimSession
. Per altre informazioni, vedere about_CimSession.
Tipo: | CimSession[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-ClassName
Specifica il nome della classe CIM per cui recuperare le istanze CIM. È possibile usare il completamento con il tasto Tab per esplorare l'elenco delle classi, perché PowerShell ottiene un elenco di classi dal server WMI locale per fornire i nomi delle classi.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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.
Tipo: | String[] |
Alias: | CN, ServerName |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Filter
Specifica una clausola where da utilizzare come filtro. Specificare la clausola nel WQL o nel linguaggio di query CQL. Non includere la parola chiave WHERE
nel valore del parametro .
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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 restituisce un errore.
Tipo: | CimInstance |
Alias: | CimInstance |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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 cmdlet Set-CimInstance
o Get-CimAssociatedInstance
.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Namespace
Specifica lo spazio dei nomi della classe CIM.
Lo spazio dei nomi predefinito è root/CIMV2. È possibile utilizzare la funzione di completamento automatico per esplorare l'elenco dei namespace, poiché PowerShell ottiene l'elenco dei namespace dal server WMI locale.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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 si verifica il timeout prima che il client possa riconnettersi.
Tipo: | UInt32 |
Alias: | OT |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 elencate usando il parametro Property. Sono presenti altre proprietà della classe, ma non vengono popolate.
Tipo: | String[] |
Alias: | SelectProperties |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Query
Specifica una query da eseguire nel server CIM. Se il valore specificato contiene virgolette doppie "
, virgolette singole '
o una barra rovesciata \
, è necessario eseguire l'escape di tali caratteri anteponendo loro il carattere barra rovesciata. Se il valore specificato usa l'operatore LIKE WQL, è necessario racchiuderli tra parentesi quadre []
: percent %
, carattere di 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 cmdlet Get-CimClass
. Per recuperare una query di eventi, usare il cmdlet Register-CimIndicationEvent
.
È possibile specificare il dialetto della query usando il parametro QueryDialect.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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 dischi o processi, in un computer.
Un URI è costituito da un prefisso e da un percorso di una risorsa. Per 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 utilizzato l'URI della risorsa standard DMTF http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/
e vi viene aggiunto il nome della classe.
ResourceUri può essere usato solo con sessioni CIM create usando il protocollo WSMan o quando si specifica il parametro NomeComputer, 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.
Tipo: | Uri |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe un oggetto istanza CIM a questo cmdlet.
Output
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.