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 |
|
Libreria dei tipi |
|
DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |