SWbemObject.Put _ 方法

SWbemObjectPut _ 方法创建或更新实例或类对象,以Windows Management Instrumentation (WMI) 。 在修改 SWbemObject 中的任何属性或方法,并且将更改写入 WMI 后,可以使用此方法。

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

语法

objObjectPath = .Put_( _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

参数

iFlags [in,可选]

此参数确定调用是创建还是更新类或实例,以及调用是否立即返回。 此参数可以接受以下值。

wbemChangeFlagUpdateCompatible*● (0 (0x0) )

如果不存在派生类且该类没有实例,则允许更新类。 如果更改只是不重要的限定符(例如,说明限定符 (,则它还允许在所有) 。 这是此调用的默认行为,用于与以前版本的 WMI 兼容。 如果类具有 实例,则更新将失败。

wbemChangeFlagUpdateSafeMode* (32 (0x20) )

如果更改不会导致与子类的任何冲突,则允许更新类,即使存在子类。 将新属性添加到任何子类中未提及的基类时,可以使用此标志。 如果类具有 实例,则更新将失败。 如果类具有 实例,则更新将失败。

WbemChangeFlagUpdateForceMode* (64 (0x40) )

存在冲突的子类时,此标志强制更新类。 例如,如果在子类中定义了类限定符,并且基类尝试添加相同的限定符并且与现有的限定符冲突,则此标志将强制更新。 在强制模式下,可以通过删除子类中的冲突限定符来解决此冲突。 如果类具有 实例,则更新将失败。

使用强制模式更新静态类会导致删除该类的所有实例。 提供程序类上的强制更新不会删除 类的实例。

wbemChangeFlagCreateOrUpdate* (0 (0x0) )

如果类或实例不存在或已覆盖,则导致该类或实例被创建。

wbemChangeFlagCreateOnly* (2 (0x2) )

仅用于创建。 如果类或实例已存在,则调用将失败。

wbemChangeFlagUpdateOnly* (1 (0x1) )

导致此调用更新。 类或实例必须存在,调用必须成功。

wbemFlagReturnImmediately* (16 (0x10) )

使调用立即返回。

wbemFlagReturnWhenComplete* (0 (0x0) )

导致此调用在查询完成之前被阻止。

wbemFlagUseAmendedQualifiers*● (131072 (0x20000) )

使 WMI 写入类修正数据以及基类定义。 有关修改的限定符的信息,请参阅本地化 WMI 类信息

objwbemNamedValueSet [in,可选]

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

返回值

如果调用成功,则返回 SWbemObjectPath 对象。 此对象包含已成功提交到 WMI 的实例或类的对象路径。

错误代码

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

wbemErrAccessDenied - 2147749891

当前用户无权更新指定类的实例。

wbemErrAlreadyExists - 2147749913 (0x80041019)

指定了 wbemChangeFlagCreateOnly 标志,但实例已存在。

wbemErrFailed - 2147749889 (0x80041001)

错误。

wbemErrIllegalNull - 2147749898 (0x8004100A)

为可能不是 Nothing 的属性指定了 Nothing 。 此类属性的一个示例是由 Key、IndexedNot _ Null 限定符标记的属性。

wbemErrInvalidObject - 2147749908 (0x80041014)

指定的实例无效。

wbemErrInvalidParameter - 0x80041008

指定的参数无效。

wbemErrNotFound - 2147749890 (0x80041002)

指定了 wbemChangeFlagUpdateOnly 标志,但实例或类不存在。

wbemErrIncompleteClass - 2147749920 (0x80041020)

尚未设置类的必需属性。

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

要求

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

请参阅

SWbemObject

SWbemObjectPath.Class

SWbemProperty

SWbemQualifier