Set-WmiInstance
Crea o aggiorna un'istanza di una classe WMI (Windows Management Instrumentation) esistente.
Sintassi
Set-WmiInstance
[-Class] <String>
[-Arguments <Hashtable>]
[-PutType <PutType>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-WmiInstance
-InputObject <ManagementObject>
[-Arguments <Hashtable>]
[-PutType <PutType>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-WmiInstance
-Path <String>
[-Arguments <Hashtable>]
[-PutType <PutType>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-WmiInstance
[-PutType <PutType>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-WmiInstance
[-PutType <PutType>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-WmiInstance
[-PutType <PutType>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il cmdlet Set-WmiInstance
crea o aggiorna un'istanza di una classe WMI (Windows Management Instrumentation) esistente. L'istanza creata o aggiornata viene scritta nel repository WMI.
I nuovi cmdlet CIM, introdotti in Windows PowerShell 3.0, eseguono le stesse attività dei cmdlet WMI. I cmdlet CIM sono conformi agli standard WS-Management (WSMan) e allo standard COMMON Information Model (CIM). in questo modo i cmdlet possono usare le stesse tecniche per gestire i computer basati su Windows e quelli che eseguono altri sistemi operativi. Anziché usare Set-WmiInstance
, è consigliabile usare i cmdlet Set-CimInstance o New-CimInstance.
Esempio
Esempio 1: Impostare il livello di registrazione WMI
Set-WmiInstance -Class Win32_WMISetting -Arguments @{LoggingLevel=2}
__GENUS : 2
__CLASS : Win32_WMISetting
__SUPERCLASS : CIM_Setting
__DYNASTY : CIM_Setting
__RELPATH : Win32_WMISetting=@
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_Setting}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace : \\root\cimv2
ASPScriptEnabled : False
AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\n...}
AutoStartWin9X :
BackupInterval :
BackupLastTime :
BuildVersion : 6001.18000
Caption :
DatabaseDirectory : C:\Windows\system32\wbem\repository
DatabaseMaxSize :
Description :
EnableAnonWin9xConnections :
EnableEvents : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects :
HighThresholdOnEvents : 20000000
InstallationDirectory : C:\Windows\system32\wbem
LastStartupHeapPreallocation :
LoggingDirectory : C:\Windows\system32\wbem\Logs\
LoggingLevel : 2
LowThresholdOnClientObjects :
LowThresholdOnEvents : 10000000
MaxLogFileSize : 65536
MaxWaitOnClientObjects :
MaxWaitOnEvents : 2000
MofSelfInstallDirectory :
SettingID :
Questo comando imposta il livello di registrazione WMI su 2. Il comando passa la proprietà da impostare e il valore, insieme considerati una coppia di valori, nel parametro dell'argomento. Il parametro accetta una tabella hash definita dalla costruzione @{property = value}
. Le informazioni sulla classe restituite riflettono il nuovo valore.
Esempio 2: Creare una variabile di ambiente e il relativo valore
$setWmiInstanceSplat = @{
Class = 'win32_environment'
Arguments = @{
Name="testvar"
VariableValue="testvalue"
UserName="<SYSTEM>"
}
}
Set-WmiInstance @setWmiInstanceSplat
__GENUS : 2
__CLASS : Win32_Environment
__SUPERCLASS : CIM_SystemResource
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Environment.Name="testvar",UserName="<SYSTEM>"
__PROPERTY_COUNT : 8
__DERIVATION : {CIM_SystemResource, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_Environment.Name="testvar",UserName="<SYSTEM>"
Caption : <SYSTEM>\testvar
Description : <SYSTEM>\testvar
InstallDate :
Name : testvar
Status : OK
SystemVariable : True
UserName : <SYSTEM>
VariableValue : testvalue
Questo comando crea la variabile di ambiente testvar
con il valore testvalue
. A tale scopo, creare una nuova istanza della classe WMI Win32_Environment. Questa operazione richiede credenziali appropriate e potrebbe essere necessario riavviare Windows PowerShell per visualizzare la nuova variabile di ambiente.
Esempio 3: Impostare il livello di registrazione WMI per diversi computer remoti
$setWmiInstanceSplat = @{
Class = 'Win32_WMISetting'
Arguments = @{LoggingLevel = 2}
ComputerName = 'system01', 'system02', 'system03'
}
Set-WmiInstance @setWmiInstanceSplat
__GENUS : 2
__CLASS : Win32_WMISetting
__SUPERCLASS : CIM_Setting
__DYNASTY : CIM_Setting
__RELPATH : Win32_WMISetting=@
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_Setting}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace : \\root\cimv2
ASPScriptEnabled : False
AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\n...}
AutoStartWin9X :
BackupInterval :
BackupLastTime :
BuildVersion : 6001.18000
Caption :
DatabaseDirectory : C:\Windows\system32\wbem\repository
DatabaseMaxSize :
Description :
EnableAnonWin9xConnections :
EnableEvents : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects :
HighThresholdOnEvents : 20000000
InstallationDirectory : C:\Windows\system32\wbem
LastStartupHeapPreallocation :
LoggingDirectory : C:\Windows\system32\wbem\Logs\
LoggingLevel : 2
LowThresholdOnClientObjects :
LowThresholdOnEvents : 10000000
MaxLogFileSize : 65536
MaxWaitOnClientObjects :
MaxWaitOnEvents : 2000
MofSelfInstallDirectory :
SettingID :
...
Questo comando imposta il livello di registrazione WMI su 2. Il comando passa la proprietà da impostare e il valore, insieme considerati una coppia di valori, nel parametro dell'argomento. Il parametro accetta una tabella hash definita dalla costruzione @{property = value}
. Le informazioni sulla classe restituite riflettono il nuovo valore.
Parametri
-Arguments
Specifica il nome della proprietà da modificare e il nuovo valore per tale proprietà. Il nome e il valore devono essere una coppia nome-valore. La coppia nome-valore viene passata nella riga di comando come tabella hash. Per esempio:
@{Setting1=1; Setting2=5; Setting3="test"}
Tipo: | Hashtable |
Alias: | Args, Property |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-AsJob
Indica che questo cmdlet viene eseguito come processo in background. Usare questo parametro per eseguire comandi che richiedono molto tempo per terminare.
Quando si specifica 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 al termine del processo. Se viene utilizzato per un computer remoto, 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 sostantivo job (cmdlet job). Per ottenere i risultati del processo, usare il cmdlet Receive-Job
.
Per usare questo parametro insieme ai computer remoti, i computer locali e remoti devono essere configurati per la comunicazione remota. Inoltre, è necessario avviare Windows PowerShell usando l'opzione esegui come amministratore. Per altre informazioni, vedere about_Remote_Requirements.
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 che deve essere utilizzato con la connessione WMI. I valori accettabili per questo parametro sono:
-
-1
: invariato. -
0
: impostazione predefinita. -
1
: Nessuno. Nessuna autenticazione eseguita. -
2
: Connetti. 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
: 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 utilizzare per autenticare la connessione WMI. È possibile specificare l'autenticazione NTLM o Kerberos standard. 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.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ComputerName
Specifica il nome del computer in cui viene eseguito questo cmdlet. Il valore predefinito è il computer locale.
Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer.
Per specificare il computer locale, digitare il nome del computer, un punto (.
) o localhost.
Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per eseguire comandi remoti.
Tipo: | String[] |
Alias: | Cn |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Credential
Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio User01
o Domain01\User01
oppure immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential
. Se si digita un nome utente, questo cmdlet richiede una password.
Questo parametro non è supportato da alcun provider installato con il parametro non è supportato da alcun provider installato con Windows PowerShell.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-EnableAllPrivileges
Indica che questo cmdlet abilita tutte le autorizzazioni dell'utente corrente prima del comando che effettua la chiamata WMI.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Impersonation
Specifica il livello di rappresentazione da utilizzare. I valori accettabili per questo parametro sono:
-
0
: impostazione predefinita. Legge il Registro di sistema locale per il livello di rappresentazione predefinito, che in genere è impostato su 3: Rappresentazione. -
1
: anonimo. Nasconde le credenziali del chiamante. -
2
: identificare. Consente agli oggetti di eseguire query sulle credenziali del chiamante. -
3
: rappresentazione. Consente agli oggetti di utilizzare le credenziali del chiamante. -
4
: delegato. Consente agli oggetti di consentire ad altri oggetti di utilizzare 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 |
-InputObject
Specifica un oggetto ManagementObject da utilizzare come input. Quando si usa questo parametro, tutti gli altri parametri , ad eccezione del parametro argomenti , vengono ignorati.
Tipo: | ManagementObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Locale
Specifica le impostazioni locali preferite per gli oggetti WMI. Il parametro impostazioni locali viene specificato in una matrice nel formato MS_<LCID>
nell'ordine preferito.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Namespace
Specifica lo spazio dei nomi del repository WMI in cui si trova la classe WMI di riferimento quando viene usata con il parametro Classe.
Tipo: | String |
Alias: | NS |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Path
Specifica un percorso oggetto WMI dell'istanza che si desidera creare o aggiornare.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-PutType
Indica se creare o aggiornare l'istanza WMI. I valori accettabili per questo parametro sono:
-
UpdateOnly
Aggiorna un'istanza WMI esistente. -
CreateOnly
Crea una nuova istanza WMI. -
UpdateOrCreate
Aggiorna l'istanza WMI se esiste o crea una nuova istanza se non esiste un'istanza.
Tipo: | PutType |
Valori accettati: | None, UpdateOnly, CreateOnly, UpdateOrCreate |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ThrottleLimit
Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Questo parametro viene usato insieme al parametro AsJob. Il limite di limitazione si applica solo al comando corrente, non alla sessione o al computer.
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra cosa accadrebbe se il cmdlet viene eseguito. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Questo cmdlet non accetta input.
Output
None
Questo cmdlet non genera output.
Note
Windows PowerShell include gli alias seguenti per Set-WmiInstance
:
swmi