Compartilhar via


Método SWbemObject.Put_

O método Put_ de SWbemObject cria ou atualiza uma instância ou um objeto de classe para o WMI (Instrumentação de Gerenciamento do Windows). Use esse método depois de modificar propriedades ou métodos em um SWbemObject e suas alterações serão gravadas no WMI.

Para ver uma explicação dessa sintaxe, consulte Convenções de documentação para a API de Script.

Sintaxe

objObjectPath = .Put_( _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

Parâmetros

iFlags [entrada, opcional]

Este parâmetro determina se a chamada cria ou atualiza a classe ou instância e se a chamada retorna imediatamente. Esse parâmetro pode aceitar os valores a seguir.

wbemChangeFlagUpdateCompatible (0 (0x0))

Permite que uma classe seja atualizada se não houver classes derivadas e se não houver instâncias dessa classe. Também permite atualizações em todos os casos se a alteração for apenas para qualificadores sem importância (por exemplo, o qualificador Descrição). Esse é o comportamento padrão para essa chamada e ele é usado para compatibilidade com versões anteriores do WMI. Se a classe tiver instâncias, a atualização falhará.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Permite atualizações de classes, mesmo que haja classes filho, se a alteração não causar nenhum conflito com as classes filho. Use esse sinalizador ao adicionar uma nova propriedade à classe base que não tenha sido mencionada anteriormente em nenhuma das classes filho. Se a classe tiver instâncias, a atualização falhará. Se a classe tiver instâncias, a atualização falhará.

WbemChangeFlagUpdateForceMode (64 (0x40))

Esse sinalizador força as atualizações de classes quando há classes filho conflitantes. Por exemplo, esse sinalizador forçará uma atualização se um qualificador de classe tiver sido definido em uma classe filho e a classe base tenta adicionar o mesmo qualificador e em conflito com o existente. No modo de força, esse conflito seria resolvido excluindo o qualificador conflitante na classe filho. Se a classe tiver instâncias, a atualização falhará.

O uso do modo de força para atualizar uma classe estática resulta na exclusão de todas as instâncias dessa classe. Uma atualização forçada em uma classe de provedor não exclui instâncias da classe.

wbemChangeFlagCreateOrUpdate (0 (0x0))

Faz com que a classe ou instância seja criada se ela não existir ou seja substituída se ela já existir.

wbemChangeFlagCreateOnly (2 (0x2))

Usado somente para criação. A chamada falhará se a classe ou a instância já existir.

wbemChangeFlagUpdateOnly (1 (0x1))

Faz com que essa chamada seja atualizada. A classe ou a instância precisa existir para que a chamada seja bem-sucedida.

wbemFlagReturnImmediately (16 (0x10))

Faz com que a chamada retorne imediatamente.

wbemFlagReturnWhenComplete (0 (0x0))

Faz com que essa chamada fique bloqueada até que a consulta seja concluída.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Faz com que o WMI grave dados de aditamento da classe, além da definição de classe base. Para obter mais informações sobre qualificadores alterados, confira Localizar informações de classe WMI.

objwbemNamedValueSet [entrada, opcional]

Normalmente, isso é indefinido. Caso contrário, esse será um objeto SWbemObjectPath cujos elementos representam as informações de contexto que podem ser usadas pelo provedor que está atendendo à solicitação. Um provedor que dê suporte ou exija essas informações deve documentar os nomes dos valores reconhecidos, o tipo de dados dos valores, os valores permitidos e a semântica.

Retornar valor

Se a chamada for bem-sucedida, um objeto SWbemObjectPath será retornado. Esse objeto contém o caminho do objeto da instância ou classe que foi confirmada com êxito no WMI.

Códigos do Erro

Após a conclusão do método Put_, o objeto deErro poderá conter um dos códigos de erro da lista a seguir.

wbemErrAccessDenied - 2147749891

O usuário atual não tem permissão para atualizar uma instância da classe especificada.

wbemErrAlreadyExists - 2147749913 (0x80041019)

O sinalizador wbemChangeFlagCreateOnly foi especificado, mas a instância já existe.

wbemErrFailed – 2147749889 (0x80041001)

Erro não especificado.

wbemErrIllegalNull - 2147749898 (0x8004100A)

Um valor Nenhum foi especificado para uma propriedade que pode não ser Nenhum. Um exemplo dessa propriedade é aquele marcado por um qualificador Chave, Indexado ou Not_Null.

wbemErrInvalidObject - 2147749908 (0x80041014)

A instância especificada é inválida.

wbemErrInvalidParameter - 0x80041008

Um parâmetro especificado não é válido.

wbemErrNotFound – 2147749890 (0x80041002)

O sinalizador wbemChangeFlagUpdateOnly foi especificado, mas a instância ou a classe não existe.

wbemErrIncompleteClass - 2147749920 (0x80041020)

As propriedades necessárias para as classes não foram todas definidas.

wbemErrOutOfMemory – 2147749894 (0x80041006)

Não há memória suficiente para concluir a operação.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Cabeçalho
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

Confira também

SWbemObject

SWbemObjectPath.Class

SWbemProperty

SWbemQualifier