SWbemObject.Put_ メソッド

SWbemObjectPutAsync_ メソッドでは、インスタンスまたはクラス オブジェクトを Windows Management Instrumentation (WMI) に非同期的に作成または更新します。 このメソッドは、SWbemObject のプロパティまたはメソッドを変更し、その変更が WMI に書き込まれた後に使用できます。

この構文の説明については、「スクリプト API のドキュメントの表記規則」を参照してください。

構文

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

パラメーター

iFlags [in、省略可能]

このパラメーターでは、呼び出しでクラスまたはインスタンスを作成または更新するかどうか、および呼び出しがすぐに戻るかどうかを決定します。 このパラメーターでは次の値を受け入れることができます。

wbemChangeFlagUpdateCompatible (0 (0x0))

そのクラスの派生クラスもインスタンスも存在しない場合に、クラスの更新を許可します。 また、重要でない修飾子 (Description 修飾子など) だけを変更する場合も、すべての更新を許可します。 これは、この呼び出しの既定の動作であり、以前のバージョンの 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 が指定されました。 このようなプロパティの例としては、KeyIndexed、または Not_Null 修飾子でマークされているプロパティがあります。

wbemErrInvalidObject - 2147749908 (0x80041014)

指定したインスタンスが有効ではありません。

wbemErrInvalidParameter - 0x80041008

指定されたパラメーターが無効です。

wbemErrNotFound - 2147749890 (0x80041002)

wbemChangeFlagUpdateOnly フラグが指定されましたが、インスタンスまたはクラスが存在しません。

wbemErrIncompleteClass - 2147749920 (0x80041020)

クラスの必須プロパティがすべて設定されていません。

wbemErrOutOfMemory - 2147749894 (0x80041006)

操作を完了させるための十分なメモリがありません。

要件

要件
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
Header
Wbemdisp.h
タイプ ライブラリ
Wbemdisp.tlb
[DLL]
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

関連項目

SWbemObject

SWbemObjectPath.Class

SWbemProperty

SWbemQualifier