Compartilhar via


Método SWbemServices.Delete

O método Delete do objeto SWbemServices exclui a classe ou instância especificada no caminho do objeto. Você só pode excluir objetos no namespace atual.

Se um provedor dinâmico fornecer a classe ou instância, você não poderá excluir esse objeto, a menos que o provedor dê suporte à exclusão de classe ou instância.

Esse método é chamado no modo síncrono. Para obter mais informações, consulte Chamar um método.

Para conferir uma explicação dessa sintaxe, confira Convenções de documentação para API de script.

Sintaxe

SWbemServices.Delete( _
  ByVal strObjectPath, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Parâmetros

strObjectPath

Obrigatórios. Cadeia de caracteres que contém o caminho do objeto para o objeto que você deseja excluir. Para obter mais informações, consulte Descrever o local de um objeto do WMI.

iFlags [opcional]

Reservado. Esse valor precisa ser zero.

objWbemNamedValueSet [opcional]

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

Retornar valor

Esse método não retorna um valor.

Códigos do Erro

Após a conclusão do método Delete, o objeto Err poderá conter um dos códigos de erro da 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 existe.

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

Comentários

O método SWbemServices.Delete pode ser usado quando a propriedade de chave do objeto não recebe um valor, pois esse método requer apenas um caminho de objeto como entrada. Esse método pode ser usado em situações em que SWbemObject.Delete_ falha por falta de um valor de chave. Se o objeto for confirmado no WMI por meio de SWbemObject.Put_, um objeto SWbemObjectPath foi obtido por meio da chamada.

Exemplos

O exemplo a seguir cria uma classe, adiciona uma propriedade que não é uma 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 a instância e exibe o caminho. Observe que o script exclui a classe e suas instâncias do repositório excluindo a classe . Para obter mais informações sobre instâncias e classes do WMI, confira Manipular informações de classe e instância e Modelo de Informações Comuns.

wbemCimtypeSint32 = 3
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"

' Add a property
' Integer property
objClass.Properties_.Add "iProperty", wbemCimtypeSint32  
objClass.Properties_("iProperty").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.iProperty = 1000

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

' Remove the new class and instance from the repository
objSWbemService.Delete("NewClass")
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_SWbemServices
IID
IID_ISWbemServices

Confira também

SWbemServices

SWbemObjectPath