Condividi tramite


Metodo SWbemServices.Delete

Il metodo Delete dell'oggetto SWbemServices elimina la classe o l'istanza specificata nel percorso dell'oggetto. È possibile eliminare solo gli oggetti nello spazio dei nomi corrente.

Se un provider dinamico fornisce la classe o l'istanza, non è possibile eliminare questo oggetto a meno che il provider supporti l'eliminazione della classe o dell'istanza.

Questo metodo viene chiamato nella modalità sincrona. Per altre informazioni, vedere Chiamata di un metodo.

Per una spiegazione di questa sintassi, vedere Convenzioni di documento per l'API scripting.

Sintassi

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

Parametri

strObjectPath

Obbligatorio. Stringa contenente il percorso dell'oggetto all'oggetto da eliminare. Per altre informazioni, vedere Descrizione della posizione di un oggetto WMI.

iFlags [facoltativo]

Riservato. Il valore deve essere zero.

objWbemNamedValueSet [facoltativo]

In genere, questo è indefinito. 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 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 SWbemServices.Delete può essere usato quando la proprietà chiave per l'oggetto non viene assegnato un valore, perché questo metodo richiede solo un percorso oggetto come input. Questo metodo può essere usato in situazioni in cui SWbemObject.Delete_ ha esito negativo per la mancanza di un valore chiave. Se l'oggetto viene eseguito il commit a WMI tramite SWbemObject.Put_, è stato ottenuto un oggetto SWbemObjectPath tramite la chiamata.

Esempio

L'esempio seguente crea una nuova classe, aggiunge una proprietà che non è una chiave, scrive la nuova classe nel repository e visualizza il percorso del nuovo oggetto classe. Lo script genera quindi un'istanza della nuova classe, scrive l'istanza e visualizza il percorso. Si noti che lo script elimina sia la classe che le relative istanze dal repository eliminando la classe. Per altre informazioni sulle classi e le istanze WMI, vedere Modifica delle informazioni sulla classe e sull'istanza esul modello di informazioni comuni.

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

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_SWbemServices
IID
IID_ISWbemServices

Vedi anche

SWbemServices

SWbemObjectPath