Set-CimInstance

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

Sintassi

Set-CimInstance
   [-ComputerName <String[]>]
   [-ResourceUri <Uri>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [-Property <IDictionary>]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CimInstance
   -CimSession <CimSession[]>
   [-ResourceUri <Uri>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [-Property <IDictionary>]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CimInstance
   -CimSession <CimSession[]>
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Query] <String>
   [-QueryDialect <String>]
   -Property <IDictionary>
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CimInstance
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Query] <String>
   [-QueryDialect <String>]
   -Property <IDictionary>
   [-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 ComputerName né il parametro CimSession , questo cmdlet funziona in Strumentazione gestione Windows locale (WMI) usando una sessione COM (Component Object Model).
  • Se viene specificato il parametro ComputerName o il parametro CimSession, questo cmdlet funziona sul server CIM specificato dal parametro ComputerName o dal parametro CimSession.

Se si specifica il parametro InputObject , il cmdlet funziona in uno dei modi seguenti:

  • Se non viene specificato né il parametro ComputerName 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 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).

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

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 Get-CimInstance cmdlet . Il Set-CimInstance cmdlet modifica il valore della proprietà VariableValue in abcd.

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

Esempio 3: Impostare 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 in a una variabile $x usando Get-CimInstancee quindi passa il contenuto della variabile al Set-CimInstance cmdlet . Set-CimInstance modifica quindi la proprietà VariableValue in somevalue. 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 usando il Get-CimInstance cmdlet e viene modificato il valore della proprietà VariableValue dell'oggetto da modificare. L'oggetto istanza CIM viene quindi salvato usando il Set-CimInstance cmdlet . 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

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

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

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.

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

Esempio 7: Impostare l'istanza CIM creata

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

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

Parametri

-CimSession

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

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:CimInstance
Aliases:CimInstance
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Namespace

Specifica lo spazio dei nomi per l'operazione CIM. Lo spazio dei nomi predefinito è root/cimv2. È possibile usare il completamento della scheda per esplorare l'elenco degli spazi dei nomi, perché PowerShell ottiene un elenco di spazi dei nomi dal server WMI locale per fornire l'elenco degli spazi dei nomi.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 scade prima che il client possa riconnettersi.

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Restituisce un oggetto che rappresenta l'elemento in uso. Per impostazione predefinita, il cmdlet non genera alcun output.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:IDictionary
Aliases:Arguments
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 loro la barra rovesciata (\). Se il valore specificato usa l'operatore LIKE WQL, è necessario racchiuderli tra parentesi quadre (): percent (%[]), carattere di sottolineatura (_) o parentesi quadra aperta ([).

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 i dischi o i processi, in un computer specifico.

Un URI è costituito da un prefisso e un percorso di una risorsa. Ad 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 usato l'URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ della risorsa standard DMTF e il nome della classe viene aggiunto.

ResourceURI può essere usato solo con le sessioni CIM create usando il protocollo WSMan o quando si specifica il parametro ComputerName, 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.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

CimInstance

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

CimInstance

Quando si usa il parametro Passthru , questo cmdlet restituisce l'oggetto istanza CIM modificato.

Note

PowerShell include gli alias seguenti per Set-CimInstance:

  • Windows:
    • scim

Questo cmdlet è disponibile solo nelle piattaforme Windows.