SWbemObject オブジェクト

SWbemObject オブジェクトのメソッドとプロパティを使用して、1 つの Windows Management Instrumentation (WMI) クラス定義またはオブジェクト インスタンスを表すことができます。 このオブジェクトは、VBScript の CreateObject 呼び出しでは作成できません。

このオブジェクトは、2 種類のプロパティとメソッドをサポートしています。 このセクションで定義されているプロパティとメソッドは、すべての WMI オブジェクトに適用される汎用的なものです。 さらに、このオブジェクトは、基になるオブジェクトのプロパティとメソッドを、SWbemObject の動的オートメーション プロパティとメソッドとして公開します。 これらのプロパティとメソッドの名前と型は、基になる WMI オブジェクトによって異なります。 これらの動的プロパティとメソッドがどのように公開されるかの詳細については、「クラスとインスタンス情報の操作」を参照してください。

WMI クライアントの観点からは、このオブジェクトは常にインプロセスです。 書き込み操作はオブジェクトのローカル コピーにのみ影響し、読み取り操作は常にローカル コピーから値を取得します。 WMI への更新は、SWbemObject.Put_ メソッドの呼び出しを使用してオブジェクト全体が書き込まれる場合にのみ実行されます。 SWbemObject オブジェクトのプロパティまたはメソッドを変更する場合、SWbemObject.Put_ を呼び出すまで、変更は WMI に書き込まれません。

このセクションで定義されている汎用的なメソッド名とプロパティ名は、基になるオブジェクトの動的 WMI メソッドとプロパティと区別するために、常に末尾にアンダースコア ("_") を付けます。

VBScript GetObject メソッドを使用して SWbemObject を作成できないことに注意してください。 新しい空のクラスを作成する場合は、SWbemServices.Get を空のパス パラメーターと共に使用します。 この呼び出しは、クラスになる可能性がある空の SWbemObject オブジェクトを返します。 その後、Path_ 呼び出しによって返される SWbemObjectPath オブジェクトの Class プロパティのクラス名を指定できます。 Properties_ メソッドを使用して、新しいクラスにプロパティを追加します。 インスタンスを作成するには、新しいクラスで GetObject を呼び出します。

次のコード例では、新しいクラスを取得し、プロパティを追加する方法を示します。 クラスを表す SWbemObject オブジェクトは、Put_ の呼び出しによって WMI リポジトリに書き戻す必要があります。

wbemCimtypeString = 8
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

CIM Studio などの表示ツールを使用してリポジトリを調べて、新しいクラスとインスタンスが表示されることを確認できます。 リポジトリからクラスとインスタンスを削除する例については、「SWbemServices.Delete」または「SWbemObject.Delete_」を参照してください。

メンバー

SWbemObject オブジェクトには、次の種類のメンバーがあります。

メソッド

SWbemObject オブジェクトには、次のメソッドがあります。

メソッド 説明
Associators_ オブジェクトの関連子を取得します。
AssociatorsAsync_ オブジェクトの関連子を非同期的に取得します。
Clone_ 現在のオブジェクトのコピーを作成します。
CompareTo_ 2 つの オブジェクトが等しいかどうかをテストします。
Delete_ WMI からオブジェクトを削除します。
DeleteAsync_ WMI からオブジェクトを非同期的に削除します。
ExecMethod_ メソッド プロバイダーによってエクスポートされたメソッドを実行します。
ExecMethodAsync_ メソッド プロバイダーによってエクスポートされたメソッドを非同期的に実行します。
GetObjectText_ オブジェクトのテキスト表現を取得します (MOF 構文)。
Instances_ オブジェクトのインスタンスのコレクションを返します (WMI クラスである必要があります)。
InstancesAsync_ オブジェクトのインスタンスのコレクションを非同期的に返します (WMI クラスである必要があります)。
Put_ WMI でオブジェクトを作成または更新します。
PutAsync_ WMI でオブジェクトを非同期に作成または更新します。
References_ オブジェクトへの参照を返します。
ReferencesAsync_ オブジェクトへの参照を非同期的に返します。
SpawnDerivedClass_ 現在のオブジェクト (WMI クラスである必要があります) から新しい派生クラスを作成します。
SpawnInstance_ 現在のオブジェクトから新しいインスタンスを作成します。
Subclasses_ オブジェクトのサブクラスのコレクションを返します (WMI クラスである必要があります)。
SubclassesAsync_ オブジェクトのサブクラスのコレクションを非同期的に返します (WMI クラスである必要があります)。

プロパティ

SWbemObject オブジェクトには、次のプロパティがあります。

プロパティ アクセスの種類 説明
Derivation_
読み取り専用
クラスの派生階層を記述する文字列の配列が含まれます。
Methods_
読み取り専用
このオブジェクトのメソッドのコレクションである SWbemMethodSet オブジェクトです。
Path_
読み取り専用
現在のクラスまたはインスタンスのオブジェクト パスを表す SWbemObjectPath オブジェクトが含まれます。
Properties_
読み取り専用
このオブジェクトのプロパティのコレクションである SWbemPropertySet オブジェクトです。
Qualifiers_
読み取り専用
このオブジェクトの修飾子のコレクションである SWbemQualifierSet オブジェクトです。
セキュリティ_
読み取り専用
セキュリティ設定の読み取りまたは変更に使用される SWbemSecurity オブジェクトが含まれます。

必要条件

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

関連項目

SWbemObjectEx

スクリプト API オブジェクト