Condividi tramite


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\User01oppure 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