método SWbemObject.Put_

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

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

Sintaxe

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

Parâmetros

iFlags [in, opcional]

Esse 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 não houver instâncias para essa classe. Ele 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 dessa chamada e é 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 se houver classes filho se a alteração não causar conflitos com classes filho. Você pode usar esse sinalizador ao adicionar uma nova propriedade a uma classe base que não foi 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 existem 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 tentar adicionar o mesmo qualificador e entrar 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á.

Usar o 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 substituída se ela já existir.

wbemChangeFlagCreateOnly (2 (0x2))

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

wbemChangeFlagUpdateOnly (1 (0x1))

Faz com que essa chamada seja atualizada. A classe ou instância deve 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 seja bloqueada até que a consulta seja concluída.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Faz com que o WMI escreva dados de alteração de classe, bem como a definição de classe base. Para obter mais informações sobre qualificadores alterados, consulte Localizando informações de classe WMI.

objwbemNamedValueSet [in, opcional]

Normalmente, isso é indefinido. Caso contrário, esse é um objeto SWbemObjectPath cujos elementos representam as informações de contexto que podem ser usadas pelo provedor que está atendendo a solicitação. Um provedor que dê suporte ou exija essas informações deve documentar os nomes de valores reconhecidos, o tipo de dados do valor, 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 Err pode conter um dos códigos de erro na 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 de Nothing foi especificado para uma propriedade que pode não ser Nothing. Um exemplo dessa propriedade é marcado por um qualificador key,indexed 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 classe não existe.

wbemErrIncompleteClass - 2147749920 (0x80041020)

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

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memória insuficiente 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