método SWbemObject.Delete_

O método Delete_ do objeto SWbemObject exclui a classe atual ou a instância atual. Se um provedor dinâmico fornecer a classe ou instância, às vezes não será possível excluir esse objeto, a menos que o provedor dê suporte à exclusão de classe ou instância. Para obter uma explicação dessa sintaxe, consulte Convenções de Documento para a API de Script.

Sintaxe

SWbemObject.Delete_( _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

Parâmetros

iFlags [in, opcional]

Reservado e deve ser 0 (zero) se especificado.

objwbemNamedValueSet [in, opcional]

Normalmente, esse parâmetro é indefinido. Caso contrário, esse é um objeto SWbemNamedValueSet 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.

Valor retornado

Esse método não retorna um valor.

Códigos do Erro

Após a conclusão do método Delete_ , o objeto Err pode conter um dos códigos de erro na lista a seguir.

wbemErrAccessDenied - 2147749891 (0x80041003)

O contexto atual não tem direitos de segurança adequados para excluir o objeto.

wbemErrFailed - 2147749889 (0x80041001)

Erro não especificado.

wbemErrInvalidClass - 2147749904 (0x80041010)

A classe especificada não existe.

wbemErrInvalidOperation - 2147749910 (0x80041016)

O objeto não pode ser excluído.

wbemErrNotFound - 2147749890 (0x80041002)

O objeto não existia.

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memória insuficiente para concluir a operação.

Comentários

O método Delete_ falhará se uma nova instância de SWbemObject for criada, mas nenhum valor for fornecido para a propriedade de chave. Windows Instrumentação de Gerenciamento (WMI) gera automaticamente um valor GUID (identificador global exclusivo), mas um valor GUID não é aceito por SWbemObject.Delete_. Nesse caso, SWbemServices.Delete, que usa o caminho do objeto funciona. Observe que um objeto SWbemObjectPath é retornado pelo método SWbemObject.Put_ depois que um objeto é confirmado no WMI.

Exemplos

O exemplo a seguir cria uma nova classe; adiciona uma propriedade de chave; grava a nova classe no repositório; e exibe o caminho do novo objeto de classe. Em seguida, o script gera uma instância da nova classe; grava- o; e exibe o caminho. Observe que o script exclui a classe e suas instâncias do repositório simplesmente excluindo a classe.

On Error Resume Next
wbemCimtypeString = 8             ' String datatype
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"

' Add a property
' String property
objClass.Properties_.add "PropertyName", wbemCimtypeString 
' Make the property a key property 
objClass.Properties_("PropertyName").Qualifiers_.Add "key", TRUE

' Write the new class to the root\default namespace in the repository
Set objClassPath = objClass.Put_
wscript.echo objClassPath.Path

'Create an instance of the new class using SWbemObject.SpawnInstance
Set objNewInst = GetObject( _
    "Winmgmts:root\default:NewClass").SpawnInstance_

objNewInst.PropertyName = "My Instance"

' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path

' Remove the new class and instance from the repository
objClass.Delete_()
If Err <> 0 Then
    WScript.Echo Err.Number & "    " & Err.Description 
Else
    WScript.Echo "Delete succeeded"
End If

' Release SwbemServices object
Set objSWbemService = Nothing

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