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 |
| ヘッダー |
|
| タイプ ライブラリ |
|
| [DLL] |
|
| CLSID |
CLSID_SWbemObject |
| IID |
IID_ISWbemObject |