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 |
标头 |
|
类型库 |
|
DLL |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |