描述
SWbemServices对象的删除方法会删除对象路径中指定的类或实例。您只能删除当前命名空间中的对象。
如果动态提供程序提供类或实例,则除非提供程序支持类或实例删除,否则不能删除此对象。
该方法在同步模式下被调用。有关详细信息,请参阅调用方法.
以下语法是语言中立的。有关此语法的说明,请参阅脚本API的文档约定.
PowerBASIC 语法
METHOD Delete_ ( _ BYVAL strObjectPath AS WSTRING, _ OPTIONAL BYVAL iFlags AS LONG, _ OPTIONAL BYVAL objWbemNamedValueSet AS IDispatch _ ) |
参数
strObjectPath
需要。包含要删除的对象的对象路径的字符串。有关详细信息,请参阅描述WMI对象的位置.
iFlags
保留,如果指定,则必须为0(零)。
objWbemNamedValueSet
通常,这是未定义的。否则,这是一个SWbemNamedValueSet对象,其元素表示服务请求的提供者可以使用的上下文信息。支持或要求此类信息的提供者必须记录识别的值名称,值的数据类型,允许的值和语义。
OBJRESULT
错误(名称/十进制/十六进制) |
含义 |
wbemErrAccessDenied -2147217405 &H80041003 |
当前上下文没有足够的安全权限删除该对象。 |
wbemErrFailed -2147217407 &H80041001 |
未指定错误 |
wbemErrInvalidClass -2147217392 &H80041010 |
指定的类不存在。 |
wbemErrInvalidOperation -2147217386 &H80041016 |
对象无法删除。 |
wbemErrNotFound -2147217406 &H80041002 |
对象不存在。 |
wbemErrOutOfMemory -2147217402 &H80041006 |
没有足够的内存来完成操作。 |
示例代码[VBScript]
以下示例创建一个新类,添加不是键的属性,将新类写入存储库,并显示新类对象的路径。然后,脚本生成新类的实例,写入实例并显示路径。请注意,脚本通过删除类从存储库中删除类及其实例。有关WMI类和实例的更多信息,请参阅操纵类和实例信息和共同信息模型.
wbemCimtypeSint32 = 3
设置objSWbemService = GetObject(“Winmgmts:root \\ default”)
设置objClass = objSWbemService.Get()
objClass.Path_.Class =“NewClass”
'添加一个属性
'整数财产
objClass.Properties_.Add“iProperty”,wbemCimtypeSint32en
objClass.Properties _(“iProperty”)。Qualifiers_.Add“key”,TRUE
'将新类写入存储库中的root \\ default命名空间
设置objClassPath = objClass.Put_
wscript.echo objClassPath.Path
'使用SWbemObject.SpawnInstance创建一个新类的实例
设置objNewInst = GetObject(_
“Winmgmts:root \\ default:NewClass”)。SpawnInstance_
objNewInst.iProperty = 1000
'将实例写入仓库
设置objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path
'从存储库中删除新的类和实例
objSWbemService.Delete("NewClass")
如果Err <>0然后
WScript.Echo Err.Number &“ ”&错误描述
其他
WScript.Echo“删除成功”
万一
'发布SwbemServices对象
设置objSWbemService =没有
备注
当对象的key属性没有赋值时,可以使用SWbemServices.Delete方法,因为该方法只需要一个对象路径作为输入。该方法可用于SWbemObject.Delete_由于缺少键值而失败的情况。如果对象通过SWbemObject.Put_提交给WMI,则通过该调用获得SWbemObjectPath对象。
要求
客户 |
需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95 OSR2及更高版本。 |
服务器 |
需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。 |
类型库 |
使用Wbemdisp.tlb。 |
头 |
Wbemdisp.inc。 |
DLL |
需要Wbemdisp.dll。 |