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