Compartir a través de


SWbemServices.Delete (método)

El método Delete del objeto SWbemServices elimina la clase o instancia especificada en la ruta de acceso del objeto. Solo puede eliminar objetos en el espacio de nombres actual.

Si un proveedor dinámico proporciona la clase o instancia, no puede eliminar este objeto a menos que el proveedor admita la eliminación de clases o instancias.

Este método se llama en el modo sincrónico. Para obtener más información, consulte Llamada a un método.

Para obtener una explicación de esta sintaxis, vea Convenciones de documentación para la API de scripting.

Sintaxis

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

Parámetros

strObjectPath

Necesario. Cadena que contiene la ruta de acceso al objeto que quiere eliminar. Para más información, consulte Descripción de la ubicación de un objeto WMI.

iFlags [opcional]

Reservado. Este valor debe ser cero.

objWbemNamedValueSet [opcional]

Normalmente, esto no está definido. De lo contrario, se trata de un objeto SWbemNamedValueSet cuyos elementos representan la información de contexto que puede usar el proveedor que atiende la solicitud. Un proveedor que admita o necesite esa información debe documentar los nombres de valor reconocidos, el tipo de datos del valor, los valores permitidos y la semántica.

Valor devuelto

Este método no devuelve ningún valor.

Códigos de error

Después de completar el método Delete, el objeto Err puede contener uno de los códigos de error de la lista siguiente.

wbemErrAccessDenied - 2147749891 (0x80041003)

El contexto actual no tiene derechos de seguridad adecuados para eliminar el objeto.

wbemErrFailed - 2147749889 (0x80041001)

Error no especificado.

wbemErrInvalidClass: 2147749904 (0x80041010)

La clase especificada no existe.

wbemErrInvalidOperation - 2147749910 (0x80041016)

No se puede eliminar el objeto.

wbemErrNotFound: 2147749890 (0x80041002)

El objeto no existe.

wbemErrOutOfMemory - 2147749894 (0x80041006)

No hay suficiente memoria para completar la operación.

Comentarios

El método SWbemServices.Delete se puede usar cuando a la propiedad de clave del objeto no se le da un valor, ya que este método solo requiere una ruta de acceso de objeto como entrada. Este método se puede usar en situaciones en las que SWbemObject.Delete_ produce un error por falta de un valor de clave. Si el objeto se confirma en WMI mediante SWbemObject.Put_, entonces un objeto SWbemObjectPath se obtuvo mediante la llamada.

Ejemplos

En el ejemplo siguiente se crea una nueva clase, se agrega una propiedad que no es una clave, se escribe la nueva clase en el repositorio y se muestra la ruta de acceso del nuevo objeto de clase. A continuación, el script genera una instancia de la nueva clase, escribe la instancia y muestra la ruta de acceso. Tenga en cuenta que, al eliminar la clase, el script elimina la clase y sus instancias del repositorio. Para más información sobre las clases e instancias de WMI, consulte Manipulación de información de clases e instancias y Modelo de información común.

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 Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

Consulte también

SWbemServices

SWbemObjectPath