Get-WmiObject
Ottiene le istanze di classi di Strumentazione gestione Windows (WMI) o informazioni sulle classi disponibili.
Sintassi
Get-WmiObject
[-Class] <String>
[[-Property] <String[]>]
[-Filter <String>]
[-Amended]
[-DirectRead]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[[-Class] <String>]
[-Recurse]
[-Amended]
[-List]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Descrizione
A partire da PowerShell 3.0, questo cmdlet è stato sostituito da Get-CimInstance
.
Il Get-WmiObject
cmdlet ottiene istanze di classi WMI o informazioni sulle classi WMI disponibili. Per specificare un computer remoto, utilizzare il parametro ComputerName . Se si specifica il parametro List , il cmdlet ottiene informazioni sulle classi WMI disponibili in uno spazio dei nomi specificato. Se si specifica il parametro Query , il cmdlet esegue un'istruzione WQL (WMI Query Language).
Il Get-WmiObject
cmdlet non usa la comunicazione remota di Windows PowerShell per eseguire operazioni remote.
È possibile usare il parametro ComputerName del Get-WmiObject
cmdlet anche se il computer non soddisfa i requisiti per la comunicazione remota di Windows PowerShell o non è configurato per la comunicazione remota in Windows PowerShell.
A partire da Windows PowerShell 3.0, la proprietà __Server dell'oggetto restituito Get-WmiObject
ha un alias PSComputerName. Questo rende più semplice includere il nome del computer di origine nell'output e nei rapporti.
Esempio
Esempio 1: Ottenere processi nel computer locale
In questo esempio vengono visualizzati i processi nel computer locale.
Get-WmiObject -Class Win32_Process
Esempio 2: Ottiene i servizi in un computer remoto
Questo esempio ottiene i servizi in un computer remoto. Il parametro ComputerName specifica l'indirizzo IP di un computer remoto. Per impostazione predefinita, l'account utente corrente deve essere membro del gruppo Administrators nel computer remoto.
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
Esempio 3: Ottenere classi WMI nello spazio dei nomi radice o predefinito del computer locale
In questo esempio vengono recuperate le classi WMI nello spazio dei nomi radice o predefinito del computer locale.
Get-WmiObject -Namespace "root/default" -List
Esempio 4: Ottenere un servizio denominato in più computer
Questo esempio ottiene il servizio WinRM nei computer specificati dal valore del parametro ComputerName .
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
PSComputerName : SERVER01
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 844
StartMode : Auto
State : Running
Status : OK
PSComputerName : SERVER02
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 932
StartMode : Auto
State : Running
Status : OK
Un operatore pipeline (|
) invia l'output al Format-List
cmdlet , che aggiunge la proprietà PSComputerName all'output predefinito. PSComputerName è un alias della proprietà __Server degli oggetti restituiti Get-WmiObject
. Questo alias è stato introdotto in PowerShell 3.0.
Esempio 5: Arrestare un servizio in un computer remoto
Questo esempio arresta il servizio WinRM in un computer remoto. Get-WmiObject
ottiene l'istanza dell'oggetto servizio WinRM in Server01. Richiama quindi il metodo StopService della classe WMI Win32_Service su tale oggetto.
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
Equivale a usare il Stop-Service
cmdlet .
Esempio 6: Ottenere il BIOS nel computer locale
In questo esempio vengono ottenute le informazioni del BIOS dal computer locale. Il parametro Property del Format-List
cmdlet viene utilizzato per visualizzare tutte le proprietà dell'oggetto restituito in un elenco. Per impostazione predefinita, vengono visualizzati solo il subset di proprietà definite nel Types.ps1xml
file di configurazione.
Get-WmiObject -Class Win32_Bios | Format-List -Property *
Status : OK
Name : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent : True
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS : CIM_BIOSElement
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER : Server01
__NAMESPACE : root\cimv2
__PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics : {7, 9, 10, 11...}
BIOSVersion : {DELL - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber :
CodeSet :
CurrentLanguage : en|US|iso8859-1
Description : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode :
InstallableLanguages : 1
InstallDate :
LanguageEdition :
ListOfLanguages : {en|US|iso8859-1}
Manufacturer : Dell Inc.
OtherTargetOS :
PrimaryBIOS : True
ReleaseDate : 20101103000000.000000+000
SerialNumber : 8VDM9P1
SMBIOSBIOSVersion : A05
SMBIOSMajorVersion : 2
SMBIOSMinorVersion : 6
SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState : 3
TargetOperatingSystem : 0
Version : DELL - 15
Scope : System.Management.ManagementScope
Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options : System.Management.ObjectGetOptions
ClassPath : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic, Locale, provider, UUID}
Site :
Container :
Esempio 7: Ottenere i servizi in un computer remoto
In questo esempio viene usato il parametro Credential del Get-WmiObject
cmdlet per ottenere i servizi in un computer remoto. Il valore del parametro Credential è un nome account utente. All'utente viene richiesta una password.
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
Nota
Non è possibile usare le credenziali quando si fa riferimento al computer locale.
Parametri
-Amended
Ottiene o imposta un valore che indica se gli oggetti restituiti da WMI devono contenere informazioni modificate. In genere, le informazioni modificate sono informazioni localizzabili, ad esempio le descrizioni di oggetti e proprietà, associate all'oggetto WMI.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-AsJob
Esegue il comando come processo in background. Usare questo parametro per eseguire comandi il cui completamento richiede molto tempo.
Quando si usa il parametro AsJob , il comando restituisce un oggetto che rappresenta il processo in background e quindi visualizza il prompt dei comandi. È possibile continuare a lavorare nella sessione mentre il processo viene completato. Se Get-WmiObject
viene utilizzato con il parametro ComputerName , il processo viene creato nel computer locale e i risultati dei computer remoti vengono restituiti automaticamente al computer locale. Per gestire il processo, usare i cmdlet che contengono il Job
sostantivo . Per ottenere i risultati del processo, usare il Receive-Job
cmdlet .
Per altre informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Authentication
Specifica il livello di autenticazione da usare con la connessione WMI. I valori validi sono:
-1
: non modificato0
: impostazione predefinita1
: nessuno (nessuna autenticazione eseguita).2
: connessione (l'autenticazione viene eseguita solo quando il client stabilisce una relazione con l'applicazione).3
: chiamata (l'autenticazione viene eseguita solo all'inizio di ogni chiamata quando l'applicazione riceve la richiesta).4
: il pacchetto (l'autenticazione viene eseguita su tutti i dati ricevuti dal client).5
: PacketIntegrity (tutti i dati trasferiti tra il client e l'applicazione vengono autenticati e verificati).6
: PacketPrivacy (vengono usate le proprietà degli altri livelli di autenticazione e tutti i dati vengono crittografati).
Tipo: | AuthenticationLevel |
Valori accettati: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Authority
Specifica l'autorità da usare per autenticare la connessione WMI. È possibile specificare l'autenticazione NTLM standard o Kerberos. Per usare NTLM, impostare l'impostazione dell'autorità su ntlmdomain:<DomainName>
, dove <DomainName>
identifica un nome di dominio NTLM valido. Per usare Kerberos, specificare kerberos:<DomainName>\<ServerName>
. Non è possibile includere l'impostazione dell'autorità quando ci si connette al computer locale.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Class
Specifica il nome di una classe WMI. Quando si usa questo parametro, il cmdlet recupera le istanze della classe WMI.
Tipo: | String |
Alias: | ClassName |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ComputerName
Specifica il computer di destinazione per l'operazione di gestione. Immettere un nome di dominio completo (FQDN), un nome NetBIOS o un indirizzo IP. Quando il computer è in un dominio diverso rispetto computer locale, il nome di dominio completo è obbligatorio.
Il valore predefinito è il computer locale. Per specificare il computer locale, ad esempio in un elenco di nomi di computer, usare localhost
, il nome del computer locale o un punto (.
).
Quando si specifica un computer remoto, l'account corrente o quello specificato con il parametro Credential deve disporre delle autorizzazioni appropriate per accedere alle informazioni.
Questo parametro non si basa sulla comunicazione remota di Windows PowerShell che usa WS-Management. È possibile utilizzare il parametro ComputerName di Get-WmiObject
anche se il computer non è configurato per eseguire i comandi remoti WS-Management.
Tipo: | String[] |
Alias: | Cn |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Credential
Specifica un account utente che dispone delle autorizzazioni per eseguire questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio User01
, Domain01\User01
o User@Contoso.com
. In alternativa, immettere un oggetto PSCredential , ad esempio un oggetto restituito dal Get-Credential
cmdlet . Quando si digita un nome utente, viene richiesta una password. Non è possibile usare le credenziali quando si fa riferimento al computer locale.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-DirectRead
Specifica se è richiesto l'accesso diretto al provider WMI per la classe specificata, indipendentemente dalla relativa classe base o le relative classi derivate.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-EnableAllPrivileges
Abilita tutti i privilegi dell'utente corrente prima che il comando effettui la chiamata a WMI.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Filter
Specifica una clausola Where da utilizzare come filtro. Usa la sintassi di WMI Query Language (WQL).
Importante
Non includere la parola chiave Where nel valore del parametro . Ad esempio, i comandi seguenti restituiscono solo i dischi logici con deviceID di c:
e i servizi con il nome "WinRM" senza usare la parola chiave Where.
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Impersonation
Specifica il livello di rappresentazione da usare.
I valori validi per questo parametro sono:
0
: impostazione predefinita. Legge il Registro di sistema locale per il livello di rappresentazione predefinito. Il valore predefinito è in genere impostato su Impersonate.1
: anonimo. Nasconde le credenziali del chiamante.2
: identificazione. Consente agli oggetti di eseguire query sulle credenziali del chiamante.3
: rappresenta. Consente agli oggetti di usare le credenziali del chiamante.4
: delegato. Consente agli oggetti di permettere ad altri oggetti di usare le credenziali del chiamante.
Tipo: | ImpersonationLevel |
Valori accettati: | Default, Anonymous, Identify, Impersonate, Delegate |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-List
Ottiene i nomi delle classi WMI nello spazio dei nomi del repository WMI specificato dal parametro Namespace .
Se si specifica il parametro List , ma non il parametro Namespace , Get-WmiObject
usa lo spazio dei nomi Root\Cimv2 per impostazione predefinita. Questo cmdlet non usa la voce predefinita del Registro di sistema Namespace nella chiave del HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
Registro di sistema per determinare lo spazio dei nomi predefinito.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Locale
Specifica le impostazioni locali preferite per gli oggetti WMI. Immettere un valore in MS_<LCID>
formato.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Namespace
Se usato con il parametro Class , il parametro Namespace specifica lo spazio dei nomi del repository WMI in cui si trova la classe WMI specificata. Se usato con il parametro List , specifica lo spazio dei nomi da cui raccogliere informazioni sulla classe WMI.
Tipo: | String |
Alias: | NS |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Property
Specifica le proprietà della classe WMI ottenute da questo cmdlet. Immettere i nomi delle proprietà.
Tipo: | String[] |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Query
Esegue l'istruzione WMI Query Language (WQL) specificata Questo parametro non supporta le query eventi.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Recurse
Cerca nello spazio dei nomi corrente e in tutti gli altri spazi dei nomi il nome della classe specificato dal parametro Class .
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ThrottleLimit
Specifica il numero massimo di operazioni WMI che possono essere eseguite contemporaneamente. Questo parametro è valido solo quando il parametro AsJob viene usato nel comando .
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Non è possibile inviare tramite pipe l'input a Get-WmiObject
.
Output
PSObject or System.Management.Automation.RemotingJob
Quando si usa il parametro AsJob , il cmdlet restituisce un oggetto processo. In caso contrario, l'oggetto restituito Get-WmiObject
dipende dal valore del parametro Class .
Note
Windows PowerShell include gli alias seguenti per Get-WmiObject
:
gwmi
Per accedere alle informazioni relative a WMI in un computer remoto, il cmdlet deve essere eseguito con un account membro del gruppo Administrators locale nel computer remoto. In alternativa, il controllo di accesso predefinito allo spazio dei nomi WMI del repository remoto può essere modificato per concedere diritti di accesso ad altri account.
Solo alcune delle proprietà di ogni classe WMI vengono visualizzate per impostazione predefinita. Il set di proprietà visualizzate per ogni classe WMI viene specificato nel Types.ps1xml
file di configurazione. Per ottenere tutte le proprietà di un oggetto WMI, usare i Get-Member
cmdlet o Format-List
.