Share via


Set-CimInstance

Modifica uma instância CIM em um servidor CIM chamando o método ModifyInstance da classe CIM.

Syntax

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>]

Description

Esse cmdlet só está disponível na plataforma Windows.

Este cmdlet modifica uma instância CIM em um servidor CIM.

Se o parâmetro InputObject não for especificado, o cmdlet funcionará de uma das seguintes maneiras:

  • Se nem o parâmetro ComputerName nem o parâmetro CimSession forem especificados, esse cmdlet funcionará no WMI (Instrumentação de Gerenciamento do Windows) local usando uma sessão COM (Component Object Model).
  • Se o parâmetro ComputerName ou o parâmetro CimSession for especificado, esse cmdlet funcionará no servidor CIM especificado pelo parâmetro ComputerName ou pelo parâmetro CimSession.

Se o parâmetro InputObject for especificado, o cmdlet funcionará de uma das seguintes maneiras:

  • Se nem o parâmetro ComputerName nem o parâmetro CimSession forem especificados, esse cmdlet usará a sessão CIM ou o nome do computador do objeto de entrada.
  • Se o parâmetro ComputerName ou o parâmetro CimSession for especificado, esse cmdlet usará o valor do parâmetro CimSession ou o valor do parâmetro ComputerName. Isso não é muito comum.

Exemplos

Exemplo 1: Definir a instância CIM

Este exemplo define o valor da propriedade VariableValue como abcd usando o parâmetro Query . Você pode modificar instâncias que correspondam a uma consulta WQL (Windows Management Instrumentation Query Language).

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

Exemplo 2: Definir a propriedade de instância CIM usando pipeline

Este exemplo recupera o objeto de instância CIM filtrado pelo parâmetro Query usando o Get-CimInstance cmdlet. O Set-CimInstance cmdlet modifica o valor da propriedade VariableValue para abcd.

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

Exemplo 3: Definir a propriedade de instância CIM usando o objeto de entrada

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

Este exemplo recupera os objetos de instância CIM filtrados pelo parâmetro Query em uma variável $x usando Get-CimInstanceo e passa o conteúdo da variável para o Set-CimInstance cmdlet. Set-CimInstance em seguida, modifica a propriedade VariableValue para somevalue. Como o parâmetro Passthru é usado, este exemplo retorna um objeto de instância CIM modificado.

Exemplo 4: Definir a propriedade de instância CIM

Este exemplo recupera o objeto de instância CIM especificado no parâmetro Query em uma variável $x usando o Get-CimInstance cmdlet e altera o valor da propriedade VariableValue do objeto a ser alterado. O objeto de instância CIM é salvo usando o Set-CimInstance cmdlet. Como o parâmetro Passthru é usado, este exemplo retorna um objeto de instância CIM modificado.

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

Exemplo 5: Mostrar a lista de instâncias CIM a serem modificadas usando WhatIf

Este exemplo usa o parâmetro comum WhatIf para especificar que a modificação não deve ser feita, mas apenas gerar a saída do que aconteceria se ela fosse feita.

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

Exemplo 6: Definir a instância CIM após a confirmação do usuário

Este exemplo usa o parâmetro comum Confirm para especificar que a modificação deve ser feita somente após a confirmação do usuário.

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

Exemplo 7: Definir a instância CIM criada

Este exemplo cria uma instância CIM com as propriedades especificadas usando o New-CimInstance cmdlet e recupera seu conteúdo em uma variável $x. A variável é então passada para o Set-CimInstance cmdlet, que modifica o valor da propriedade VariableValue para somevalue. Como o parâmetro Passthru é usado, este exemplo retorna um objeto de instância CIM modificado.

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

Parâmetros

-CimSession

Executa os cmdlets em um computador remoto. Insira um nome de computador ou um objeto de sessão, como a saída de um New-CimSession cmdlet ou Get-CimSession .

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputerName

Especifica o nome do computador no qual você deseja executar a operação CIM. Você pode especificar um FQDN (nome de domínio totalmente qualificado) ou um nome NetBIOS.

Se você não especificar esse parâmetro, o cmdlet executará a operação no computador local usando o COM (Component Object Model).

Se você especificar esse parâmetro, o cmdlet criará uma sessão temporária para o computador especificado usando o protocolo WsMan.

Se várias operações estiverem sendo executadas no mesmo computador, a conexão usando uma sessão CIM proporcionará melhor desempenho.

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

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

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

-InputObject

Especifica um objeto de instância CIM a ser usado como entrada.

O parâmetro InputObject não enumera sobre coleções. Se uma coleção for passada, um erro será lançado. Ao trabalhar com coleções, canalize a entrada para enumerar os valores.

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

-Namespace

Especifica o namespace para a operação CIM. O namespace padrão é root/cimv2. Você pode usar a conclusão de tabulação para procurar a lista de namespaces, porque o PowerShell obtém uma lista de namespaces do servidor WMI local para fornecer a lista de namespaces.

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

-OperationTimeoutSec

Especifica a quantidade de tempo que o cmdlet aguarda uma resposta do computador. Por padrão, o valor desse parâmetro é 0, o que significa que o cmdlet usa o valor de tempo limite padrão para o servidor.

Se o parâmetro OperationTimeoutSec for definido como um valor menor que o tempo limite de repetição de conexão robusto de 3 minutos, as falhas de rede que duram mais do que o valor do parâmetro OperationTimeoutSec não serão recuperáveis, porque a operação no servidor expira antes que o cliente possa se reconectar.

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

-PassThru

Retorna um objeto que representa o item com que você está trabalhando. Por padrão, este cmdlet não gera saída.

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

-Property

Especifica as propriedades da instância CIM como uma tabela de hash (usando pares nome-valor). Somente as propriedades especificadas usando esse parâmetro são alteradas. Outras propriedades da instância CIM não são alteradas.

Type:IDictionary
Aliases:Arguments
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Query

Especifica uma consulta a ser executada no servidor CIM para recuperar instâncias CIM nas quais executar o cmdlet. Você pode especificar o dialeto de consulta usando o parâmetro QueryDialect.

Se o valor especificado contiver aspas duplas ("), aspas simples (') ou uma barra invertida (\), você deverá escapar desses caracteres prefixando-os com o caractere de barra invertida (\). Se o valor especificado usar o operador WQL LIKE , você deverá escapar dos seguintes caracteres colocando-os entre colchetes ([]): porcentagem (%), sublinhado (_) ou colchete de abertura ([).

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

-QueryDialect

Especifica o idioma de consulta usado para o parâmetro Query. Os valores aceitáveis para esse parâmetro são: WQL ou CQL. O valor padrão é WQL.

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

-ResourceUri

Especifica o URI (identificador uniforme de recursos) do recurso da classe ou instância do recurso. O URI é utilizado para identificar um tipo específico de recurso, como discos ou processos em um computador.

Um URI consiste em um prefixo e um caminho para um recurso. Por exemplo:

  • http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
  • http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

Por padrão, se você não especificar esse parâmetro, o URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ do recurso padrão DMTF será usado e o nome da classe será anexado a ele.

ResourceURI só pode ser usado com sessões CIM criadas usando o protocolo WSMan ou ao especificar o parâmetro ComputerName, que cria uma sessão CIM usando WSMan. Se você especificar esse parâmetro sem especificar o parâmetro ComputerName ou se especificar uma sessão CIM criada usando o protocolo DCOM, você obterá um erro, porque o protocolo DCOM não oferece suporte ao parâmetro ResourceURI.

Se o parâmetro ResourceUri e o parâmetro Filter forem especificados, o parâmetro Filter será ignorado.

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

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

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

Entradas

CimInstance

Saídas

None

Por padrão, esse cmdlet não retorna nenhuma saída.

CimInstance

Quando você usa o parâmetro Passthru , esse cmdlet retorna o objeto de instância CIM modificado.

Observações

O PowerShell inclui os seguintes aliases para Set-CimInstance:

  • Windows:
    • scim

Esse cmdlet só está disponível em plataformas Windows.