Condividi tramite


Set-CimInstance

Modifica un'istanza CIM in un server CIM chiamando il metodo ModifyInstance della classe CIM.

Sintassi

CimInstanceComputerSet (impostazione predefinita).

Set-CimInstance
    [-InputObject] <CimInstance>
    [-ComputerName <String[]>]
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-Property <IDictionary>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceSessionSet

Set-CimInstance
    [-InputObject] <CimInstance>
    -CimSession <CimSession[]>
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-Property <IDictionary>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QuerySessionSet

Set-CimInstance
    [-Query] <String>
    -CimSession <CimSession[]>
    -Property <IDictionary>
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-QueryDialect <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QueryComputerSet

Set-CimInstance
    [-Query] <String>
    -Property <IDictionary>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-QueryDialect <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Questo cmdlet modifica un'istanza CIM in un 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 utilizza il valore del parametro CimSession o il valore del parametro ComputerName. Questo non è molto comune.

Esempio

Esempio 1: Impostare l'istanza CIM

In questo esempio il valore della proprietà VariableValue viene impostato su abcd usando il parametro Query. È possibile modificare le istanze corrispondenti a una query WQL (Windows Management Instrumentation Query Language).

$instance = @ {
    Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
    Property = @{VariableValue="abcd"}
}
Set-CimInstance @instance

Esempio 2: Impostare la proprietà dell'istanza CIM usando la pipeline

In questo esempio viene recuperato l'oggetto istanza CIM filtrato in base al parametro query usando il cmdlet . Il cmdlet modifica il valore della proprietà VariableValue per abcd.

Get-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' |
  Set-CimInstance -Property @{VariableValue="abcd"}

Esempio 3: Configurare la proprietà dell'istanza CIM usando l'oggetto di input

$x = Get-CimInstance -Query 'Select * from Win32_Environment where Name="testvar"'
Set-CimInstance -InputObject $x -Property @{VariableValue="somevalue"} -PassThru

In questo esempio vengono recuperati gli oggetti dell'istanza CIM filtrati in base al parametro Query nella variabile $x usando Get-CimInstance, e quindi passa il contenuto della variabile al cmdlet Set-CimInstance. Set-CimInstance quindi modifica la proprietà VariableValue a qualchevalore. Poiché viene utilizzato il parametro passThru , in questo esempio viene restituito un oggetto istanza CIM modificato.

Esempio 4: Impostare la proprietà dell'istanza CIM

In questo esempio viene recuperato l'oggetto istanza CIM specificato nel parametro query in una variabile $x utilizzando il cmdlet Get-CimInstance, e viene modificato il valore della proprietà VariableValue dell'oggetto da cambiare. L'oggetto istanza CIM viene quindi salvato usando il cmdlet Set-CimInstance. Poiché viene utilizzato il parametro passThru , in questo esempio viene restituito un oggetto istanza CIM modificato.

$x = Get-CimInstance -Query 'Select * from Win32_Environment where name="testvar"'
$x.VariableValue = "Change"
Set-CimInstance -CimInstance $x -PassThru

Esempio 5: Visualizzare l'elenco di istanze CIM da modificare usando WhatIf

Questo esempio usa il parametro comune WhatIf per specificare che la modifica non deve essere eseguita, ma restituisce solo ciò che accadrebbe se fosse stato fatto.

$instance = @{
    Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
    Property = @{VariableValue="abcd"}
    WhatIf = $true
}
Set-CimInstance @instance

Esempio 6: Impostare l'istanza CIM dopo la conferma dell'utente

In questo esempio viene usato il parametro comune Confirm per specificare che la modifica deve essere eseguita solo dopo la conferma dell'utente.

$instance = @{
    Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
    Property = @{VariableValue="abcd"}
    Confirm = $true
}
Set-CimInstance @instance

Esempio 7: Impostare l'istanza CIM creata

In questo esempio viene creata un'istanza CIM con le proprietà specificate usando il cmdlet New-CimInstance e il relativo contenuto viene recuperato in una variabile $x. La variabile viene quindi passata al cmdlet Set-CimInstance, che modifica il valore della proprietà VariableValue a . Poiché viene utilizzato il parametro passThru , in questo esempio viene restituito un oggetto istanza CIM modificato.

$instance = @{
    ClassName = 'Win32_Environment'
    Property = @{
        Name="testvar"
        UserName="domain\user"
    }
    Key = 'Name', 'UserName'
    ClientOnly = $true
}
$x = New-CimInstance @instance
Set-CimInstance -CimInstance $x -Property @{VariableValue="somevalue"} -PassThru

Parametri

-CimSession

Esegue i cmdlet su un computer remoto. Immettere un nome del computer o un oggetto sessione, ad esempio un output di un cmdlet New-CimSession o Get-CimSession.

Proprietà dei parametri

Tipo:

CimSession[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

CimInstanceSessionSet
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
QuerySessionSet
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ComputerName

Specifica il nome del computer in cui si desidera eseguire l'operazione CIM. È possibile specificare un nome di dominio completo (FQDN) o un nome NetBIOS.

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, la connessione tramite una sessione CIM offre prestazioni migliori.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:Cina, Nome del Server

Set di parametri

CimInstanceComputerSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
QueryComputerSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:cfr

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputObject

Specifica un oggetto istanza CIM da utilizzare come input.

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.

Proprietà dei parametri

Tipo:CimInstance
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:CimInstance

Set di parametri

CimInstanceComputerSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
CimInstanceSessionSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Namespace

Specifica il namespace per l'operazione 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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

QuerySessionSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
QueryComputerSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:UInt32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:OT

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-PassThru

Restituisce un oggetto che rappresenta l'elemento con cui si sta lavorando. Per impostazione predefinita, questo cmdlet non genera alcun output.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Property

Specifica le proprietà dell'istanza CIM come tabella hash (usando coppie nome-valore). Vengono modificate solo le proprietà specificate utilizzando questo parametro. Altre proprietà dell'istanza CIM non vengono modificate.

Proprietà dei parametri

Tipo:IDictionary
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:Argomenti

Set di parametri

CimInstanceComputerSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
CimInstanceSessionSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
QuerySessionSet
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
QueryComputerSet
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Query

Specifica una query da eseguire nel server CIM per recuperare le istanze CIM in cui eseguire il cmdlet. È possibile specificare il dialetto della query usando il parametro QueryDialect.

Se il valore specificato contiene virgolette doppie ("), virgolette singole (') o una barra rovesciata (\), è necessario eseguire l'escape di tali caratteri anteponendo una barra rovesciata (\). Se il valore specificato utilizza l'operatore WQL LIKE, devi escapare i seguenti caratteri racchiudendoli tra parentesi quadre ([]): percentuale (%), carattere di sottolineatura (_) o parentesi quadra aperta ([).

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

QuerySessionSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
QueryComputerSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

QuerySessionSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
QueryComputerSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:Uri
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

CimInstanceComputerSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
CimInstanceSessionSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:Wi

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

CimInstance

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

CimInstance

Quando si utilizza il parametro PassThru, questo cmdlet restituisce l'istanza CIM modificata.

Note

PowerShell include gli alias seguenti per Set-CimInstance:

  • Windows:
    • scim

Questo cmdlet è disponibile solo nelle piattaforme Windows.