SWbemObject Put _ 方法

SWbemObjectPut _ 方法會建立或更新實例或類別物件,以 Windows Management Instrumentation (WMI) 。 在修改 SWbemObject 中的任何屬性或方法之後,您可以使用這個方法,而您的變更會寫入至 WMI。

如需此語法的說明,請參閱 腳本 API 的檔慣例

語法

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

參數

iFlags [在中,選擇性]

此參數會判斷呼叫是否建立或更新類別或實例,以及呼叫是否立即傳回。 此參數可接受下列值。

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 [在中,選擇性]

一般而言,這是未定義的。 否則,這會是 SWbemObjectPath 物件,其元素代表服務要求的提供者所能使用的內容資訊。 支援或需要這類資訊的提供者,必須記錄已辨識的值名稱、值的資料類型、允許的值,以及語義。

傳回值

如果呼叫成功,則會傳回 SWbemObjectPath 物件。 此物件包含已成功認可至 WMI 之實例或類別的物件路徑。

錯誤碼

完成 Put _ 方法之後, Err物件可能會包含下列清單中的其中一個錯誤碼。

wbemErrAccessDenied -2147749891

目前的使用者沒有更新指定類別之實例的許可權。

wbemErrAlreadyExists -2147749913 (0x80041019)

指定了 wbemChangeFlagCreateOnly 旗標,但該實例已經存在。

wbemErrFailed -2147749889 (0x80041001)

未指定的錯誤。

wbemErrIllegalNull -2147749898 (0x8004100A)

未針對不是 任何 專案的屬性指定 任何 值。 這類屬性的範例之一,是由索引 鍵、 索引非 _ Null 的辨識符號標記。

wbemErrInvalidObject -2147749908 (0x80041014)

所指定的執行個體無效。

wbemErrInvalidParameter -0x80041008

指定的參數無效。

wbemErrNotFound -2147749890 (0x80041002)

指定了 wbemChangeFlagUpdateOnly 旗標,但實例或類別不存在。

wbemErrIncompleteClass -2147749920 (0x80041020)

尚未設定類別的必要屬性。

wbemErrOutOfMemory -2147749894 (0x80041006)

記憶體不足,無法完成操作。

規格需求

需求
最低支援的用戶端
Windows Vista
最低支援的伺服器
Windows Server 2008
標頭
>Wbemdisp.tlb。h
類型程式庫
>Wbemdisp.tlb .tlb
DLL
Wbemdisp.dll
CLSID
CLSID _ SWbemObject
IID
IID _ ISWbemObject

另請參閱

SWbemObject

SWbemObjectPath 類別

Swbempropertyset

SWbemQualifier