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 fornece a classe ou instância, pode ser impossível excluir esse objeto, a menos que o provedor dê suporte à exclusão da classe ou instância. Para obter uma explicação dessa sintaxe, confira Convenções de documentação para API de script.
Sintaxe
SWbemObject.Delete_( _
[ ByVal iFlags ], _
[ ByVal objwbemNamedValueSet ] _
)
Parâmetros
-
iFlags [in, opcional]
-
Reservado e deve ser 0 (zero) se especificado.
-
objwbemNamedValueSet [entrada, opcional]
-
Esse parâmetro normalmente é indefinido. Caso contrário, esse será um objeto SWbemNamedValueSet 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 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 existia.
-
wbemErrOutOfMemory – 2147749894 (0x80041006)
-
Não há memória suficiente 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 key. O WMI (Instrumentação de Gerenciamento do Windows) gera automaticamente um valor de GUID (identificador global exclusivo), mas um valor GUID não é aceito por SWbemObject.Delete_. Nesse caso, o 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 classe, adiciona uma propriedade key, grava a nova classe no repositório e exibe o caminho do novo objeto de classe. Em seguida, o script gera e grava uma instância da nova classe, e exibe o caminho. Observe que o script exclui a classe e as 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 |
|
Biblioteca de tipos |
|
DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |