Partilhar via


Set-WmiInstance

Cria ou atualiza uma instância de uma classe WMI (Instrumentação de Gerenciamento do Windows) existente.

Syntax

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

Description

O Set-WmiInstance cmdlet cria ou atualiza uma instância de uma classe WMI (Instrumentação de Gerenciamento do Windows) existente. A instância criada ou atualizada é gravada no repositório WMI.

Os novos cmdlets CIM, introduzidos no Windows PowerShell 3.0, executam as mesmas tarefas que os cmdlets WMI. Os cmdlets CIM estão em conformidade com os padrões WS-Management (WSMan) e com o padrão Common Information Model (CIM). isso permite que os cmdlets usem as mesmas técnicas para gerenciar computadores baseados no Windows e aqueles que executam outros sistemas operacionais. Em vez de usar Set-WmiInstanceo , considere usar os cmdlets Set-CimInstance ou New-CimInstance .

Exemplos

Exemplo 1: Definir nível de log WMI

Set-WmiInstance -Class Win32_WMISetting -Argument @{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\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
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                      :

Este comando define o nível de log WMI como 2. O comando passa a propriedade a ser definida e o valor, juntos considerados um par de valores, no parâmetro argument. O parâmetro usa uma tabela de hash que é definida pela @{property = value} construção. As informações de classe retornadas refletem o novo valor.

Exemplo 2: Criar uma variável de ambiente e seu valor

Set-WmiInstance -Class win32_environment -Argument @{Name="testvar";VariableValue="testvalue";UserName="<SYSTEM>"}

__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

Este comando cria a variável de ambiente testvar que tem o valor testvalue. Ele faz isso criando uma nova instância do Win32_Environment classe WMI. Essa operação requer credenciais apropriadas e talvez seja necessário reiniciar o Windows PowerShell para ver a nova variável de ambiente.

Exemplo 3: Definir o nível de log WMI para vários computadores remotos

Set-WmiInstance -Class Win32_WMISetting -Argument @{LoggingLevel=2} -Computername "system01", "system02", "system03"

__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\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
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                      :
...

Este comando define o nível de log WMI como 2. O comando passa a propriedade a ser definida e o valor, juntos considerados um par de valores, no parâmetro argument. O parâmetro usa uma tabela de hash que é definida pela @{property = value} construção. As informações de classe retornadas refletem o novo valor.

Parâmetros

-Arguments

Especifica o nome da propriedade a ser alterada e o novo valor dessa propriedade. O nome e o valor devem ser um par nome-valor. O par nome-valor é transmitido na linha de comandos como uma tabela hash. Por exemplo:

@{Setting1=1; Setting2=5; Setting3="test"}

Type:Hashtable
Aliases:Args, Property
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

Indica que esse cmdlet é executado como um trabalho em segundo plano. Use esse parâmetro para executar comandos que levam muito tempo para serem concluídos.

Quando você especifica o parâmetro AsJob , o comando retorna um objeto que representa o trabalho em segundo plano e, em seguida, exibe o prompt de comando. Você pode continuar a trabalhar na sessão enquanto o trabalho termina. Se for usado para um computador remoto, o trabalho será criado no computador local e os resultados dos computadores remotos serão retornados automaticamente ao computador local. Para gerenciar o trabalho, use os cmdlets que contêm o substantivo Job (os cmdlets Job ). Para obter os resultados do trabalho, use o Receive-Job cmdlet.

Para usar esse parâmetro junto com computadores remotos, os computadores locais e remotos devem ser configurados para comunicação remota. Além disso, você deve iniciar o Windows PowerShell usando a opção Executar como administrador no Windows Vista e versões posteriores do sistema operacional Windows. Para obter mais informações, consulte about_Remote_Requirements.

Para obter mais informações sobre trabalhos em segundo plano do Windows PowerShell, consulte about_Jobs e about_Remote_Jobs.

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

-Authentication

Especifica o nível de autenticação que deve ser usado com a conexão WMI. Os valores aceitáveis para este parâmetro são:

  • -1: Inalterado.
  • 0: predefinição.
  • 1: Nenhuma. Nenhuma autenticação em executada.
  • 2: Conecte-se. A autenticação é realizada somente quando o cliente estabelece um relacionamento com o aplicativo.
  • 3: Ligue. A autenticação é realizada somente no início de cada chamada, quando o aplicativo recebe a solicitação.
  • 4: Pacote. A autenticação é realizada em todos os dados recebidos do cliente.
  • 5: PacketIntegrity. Todos os dados transferidos entre o cliente e o aplicativo são autenticados e verificados.
  • 6: PacketPrivacy. As propriedades dos outros níveis de autenticação são usadas e todos os dados são criptografados.
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authority

Especifica a autoridade a ser usada para autenticar a conexão WMI. Você pode especificar a autenticação NTLM ou Kerberos padrão. Para usar NTLM, defina a configuração de autoridade como ntlmdomain:<DomainName>, onde <DomainName> identifica um nome de domínio NTLM válido. Para usar Kerberos, especifique kerberos:<DomainName>\<ServerName>. Não é possível incluir a configuração de autoridade quando você se conecta ao computador local.

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

-Class

Especifica o nome de uma classe WMI.

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

-ComputerName

Especifica o nome do computador no qual esse cmdlet é executado. A predefinição é o computador local.

Digite o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado de um ou mais computadores. Para especificar o computador local, digite o nome do computador, um ponto (.) ou localhost.

Esse parâmetro não depende da comunicação remota do Windows PowerShell. Você pode usar o parâmetro ComputerName mesmo que o computador não esteja configurado para executar comandos remotos.

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

-Confirm

Solicita a 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

-Credential

Especifica uma conta de usuário que tem permissão para executar essa ação. A predefinição é o utilizador atual.

Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential , como um gerado pelo cmdlet Get-Credential. Se você digitar um nome de usuário, esse cmdlet solicitará uma senha.

Este parâmetro não é suportado por nenhum provedor instalado com parâmetro não é suportado por nenhum provedor instalado com o Windows PowerShell.

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

-EnableAllPrivileges

Indica que esse cmdlet habilita todas as permissões do usuário atual antes do comando que ele faz a chamada WMI.

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

-Impersonation

Especifica o nível de representação a ser usado. Os valores aceitáveis para este parâmetro são:

  • 0: predefinição. Lê o registro local para o nível de representação padrão, que geralmente é definido como 3: Representar.
  • 1: Anónimo. Oculta as credenciais do chamador.
  • 2: Identificar. Permite que os objetos consultem as credenciais do chamador.
  • 3: Personificar. Permite que os objetos usem as credenciais do chamador.
  • 4: Delegar. Permite que outros objetos usem as credenciais do chamador.
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica um objeto ManagementObject a ser usado como entrada. Quando esse parâmetro é usado, todos os outros parâmetros, exceto o parâmetro Argumentos , são ignorados.

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

-Locale

Especifica a localidade preferida para objetos WMI. O parâmetro Locale é especificado em uma matriz no formato MS_<LCID> na ordem preferencial.

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

-Namespace

Especifica o namespace do repositório WMI onde a classe WMI referenciada está localizada quando é usada com o parâmetro Class .

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

-Path

Especifica um caminho de objeto WMI da instância que você deseja criar ou atualizar.

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

-PutType

Indica se a instância WMI deve ser criada ou atualizada. Os valores aceitáveis para este parâmetro são:

  • UpdateOnly Atualiza uma instância WMI existente.
  • CreateOnly Cria uma nova instância WMI.
  • UpdateOrCreate Atualiza a instância WMI se ela existir ou cria uma nova instância se uma instância não existir.
Type:PutType
Accepted values:None, UpdateOnly, CreateOnly, UpdateOrCreate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Especifica o número máximo de conexões simultâneas que podem ser estabelecidas para executar esse comando. Este parâmetro é usado em conjunto com o parâmetro AsJob . O limite de aceleração aplica-se apenas ao comando atual, não à sessão ou ao computador.

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

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. 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

None

Este cmdlet não aceita entrada.

Saídas

None

Este cmdlet não gera saída.

Notas

O Windows PowerShell inclui os seguintes aliases para Set-WmiInstance:

  • swmi