Método SWbemObject.Delete_
El método Delete_ del objeto SWbemObject elimina la clase o instancia actual. Si un proveedor dinámico proporciona la clase o instancia, a veces no es posible eliminar este objeto a menos que el proveedor admita la eliminación de clases o instancias. Para obtener una explicación de esta sintaxis, vea Convenciones de documentación para la API de scripting.
Sintaxis
SWbemObject.Delete_( _
[ ByVal iFlags ], _
[ ByVal objwbemNamedValueSet ] _
)
Parámetros
-
iFlags [in, optional]
-
Está reservado y debe ser 0 (cero) si se especifica.
-
objwbemNamedValueSet [in, optional]
-
Este parámetro normalmente 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 existía.
-
wbemErrOutOfMemory - 2147749894 (0x80041006)
-
No hay suficiente memoria para completar la operación.
Comentarios
Se produce un error en el método Delete_ si se crea una instancia de SWbemObject, pero no se proporciona ningún valor para la propiedad de clave. Instrumental de administración de Windows (WMI) genera automáticamente un valor de identificador único global (GUID), pero SWbemObject.Delete_ no acepta un valor GUID. En este caso, SWbemServices.Delete funciona porque usa la ruta de acceso del objeto. Tenga en cuenta que el método SWbemObject.Put_ devuelve un objeto SWbemObjectPath después de confirmar un objeto en WMI.
Ejemplos
En el ejemplo siguiente se crea una clase, se agrega una propiedad de 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, la escribe y muestra la ruta de acceso. Tenga en cuenta que el script elimina del repositorio la clase y sus instancias, para lo que simplemente elimina la clase.
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 | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Encabezado |
|
Biblioteca de tipos |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |