SWbemObject.Delete_ 方法

SWbemObject 对象的 Delete\_ 方法删除当前类或当前实例。 如果动态提供程序提供类或实例,那么除非提供程序支持删除类或实例,否则有时会无法删除此对象。 有关此语法的说明,请参阅脚本 API 的文档约定

语法

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

parameters

iFlags [in, optional]

如果指定,则保留并且必须为 0(零)。

objwbemNamedValueSet [in, optional]

通常未定义此参数。 否则,这就是 SWbemNamedValueSet 对象,其元素表示为请求提供服务的提供程序可使用的上下文信息。 支持或需要此类信息的提供程序必须记录已识别的值名称、值数据类型、允许的值和语义。

返回值

此方法不返回值。

错误代码

Delete_ 方法完成后,Err 对象可能包含以下列表中的错误代码之一。

wbemErrAccessDenied - 2147749891 (0x80041003)

当前上下文没有足够的安全权限来删除对象。

wbemErrFailed - 2147749889 (0x80041001)

错误。

wbemErrInvalidClass - 2147749904 (0x80041010)

指定的类不存在。

wbemErrInvalidOperation - 2147749910 (0x80041016)

无法删除对象。

wbemErrNotFound - 2147749890 (0x80041002)

对象不存在。

wbemErrOutOfMemory - 2147749894 (0x80041006)

内存不足,无法完成此操作。

备注

如果创建了 SWbemObject 的新实例,但未为键属性提供任何值,则 Delete_ 方法将失败。 Windows Management Instrumentation (WMI) 自动生成全局唯一标识符 (GUID) 值,但 SWbemObject.Delete_ 不接受 GUID 值。 在这种情况下,使用对象路径的 SWbemServices.Delete 可以正常运行。 请注意,将对象提交到 WMI 后,SWbemObject.Put_ 方法将返回 SWbemObjectPath 对象。

示例

以下示例创建一个新类;添加一个键属性;将新类写入存储库;显示新类对象的路径。 然后,该脚本生成新类的实例;写入该实例;显示路径。 请注意,该脚本只会通过删除类从存储库中同时删除该类及其实例。

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

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
标头
Wbemdisp.h
类型库
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject