SWbemServices.Delete 方法

SWbemServices 对象的 Delete 方法删除在对象路径中指定的类或实例。 只能删除当前命名空间中的对象。

如果动态提供程序提供类或实例,则无法删除此对象,除非该提供程序支持类或实例删除。

此方法在同步模式下调用。 有关详细信息,请参阅调用方法

有关此语法的说明,请参阅脚本 API 的文档约定

语法

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

parameters

strObjectPath

必需。 包含要删除的对象的对象路径的字符串。 有关详细信息,请参阅描述 WMI 对象的位置

iFlags [optional]

保留。 此值必须为零。

objWbemNamedValueSet [optional]

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

返回值

此方法不返回值。

错误代码

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

wbemErrAccessDenied - 2147749891 (0x80041003)

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

wbemErrFailed - 2147749889 (0x80041001)

错误。

wbemErrInvalidClass - 2147749904 (0x80041010)

指定的类不存在。

wbemErrInvalidOperation - 2147749910 (0x80041016)

无法删除对象。

wbemErrNotFound - 2147749890 (0x80041002)

对象不存在。

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

备注

如果没有为对象的键属性提供值,则可以使用 SWbemServices.Delete 方法,因为此方法只需要对象路径作为输入。 如果 SWbemObject.Delete_ 因缺少键值而失败,可以使用此方法。 如果对象通过 SWbemObject.Put_ 提交到 WMI,那么 SWbemObjectPath 对象是通过调用获取的。

示例

以下示例创建一个新类、添加一个非键属性、将新类写入存储库,并显示新类对象的路径。 然后,该脚本生成新类的实例,写入该实例并显示路径。 请注意,该脚本可通过删除该类,从存储库中同时删除该类及其实例。 有关 WMI 类和实例的详细信息,请参阅操作类和实例信息通用信息模型

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

要求

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

另请参阅

SWbemServices

SWbemObjectPath