Condividi tramite


SWbemObject.Delete_ metodo

Il metodo Delete_ dell'oggetto SWbemObject elimina la classe corrente o l'istanza corrente. Se un provider dinamico fornisce la classe o l'istanza, a volte non è possibile eliminare questo oggetto a meno che il provider supporti l'eliminazione di classi o istanze. Per una spiegazione di questa sintassi, vedere Convenzioni di documento per l'API scripting.

Sintassi

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

Parametri

iFlags [in, facoltativo]

Riservato e deve essere 0 (zero) se specificato.

objwbemNamedValueSet [in, facoltativo]

Questo parametro è in genere non definito. In caso contrario, si tratta di un oggetto SWbemNamedValueSet i cui elementi rappresentano le informazioni di contesto che possono essere usate dal provider che esegue la manutenzione della richiesta. Un provider che supporta o richiede tali informazioni deve documentare i nomi di valore riconosciuti, il tipo di dati del valore, i valori consentiti e la semantica.

Valore restituito

Questo metodo non restituisce valori.

Codici di errore

Al termine del metodo Delete_ , l'oggetto Err può contenere uno dei codici di errore nell'elenco seguente.

wbemErrAccessDenied - 2147749891 (0x80041003)

Il contesto corrente non dispone di diritti di sicurezza adeguati per eliminare l'oggetto.

wbemErrFailed - 2147749889 (0x80041001)

Errore non specificato.

wbemErrInvalidClass - 2147749904 (0x80041010)

La classe specificata non esiste.

wbemErrInvalidOperation - 2147749910 (0x80041016)

Impossibile eliminare l'oggetto.

wbemErrNotFound - 2147749890 (0x80041002)

L'oggetto non esiste.

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memoria insufficiente per completare l'operazione.

Commenti

Il metodo Delete_ ha esito negativo se viene creata una nuova istanza di SWbemObject , ma non viene fornito alcun valore per la proprietà key. Strumentazione gestione Windows (WMI) genera automaticamente un valore GUID (Unique Identifier) globale, ma un valore GUID non viene accettato da SWbemObject.Delete_. In questo caso, SWbemServices.Delete, che usa il percorso dell'oggetto funziona. Si noti che un oggetto SWbemObjectPath viene restituito dal metodo SWbemObject.Put_ dopo il commit di un oggetto a WMI.

Esempio

Nell'esempio seguente viene creata una nuova classe; aggiunge una proprietà chiave; scrive la nuova classe nel repository; e visualizza il percorso del nuovo oggetto classe. Lo script genera quindi un'istanza della nuova classe; lo scrive; e visualizza il percorso. Si noti che lo script elimina sia la classe che le relative istanze dal repository semplicemente eliminando la 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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject