WMI のクエリ

Windows Management Instrumentation (WMI) のメイン ツールの 1 つが、WMI リポジトリに対してクラスとインスタンスの情報を照会する機能です。 たとえば、WMI がシャットダウン イベントを表すすべてのオブジェクトをデスクトップ システムから返すよう要求できます。 クラス、インスタンス、またはスキーマ データを取得することもできます。 次の表に、行うことができるさまざまな種類のクエリを示します。

トピック 説明
同期クエリの呼び出し クエリ プロセス全体で WMI とのリンクを維持する方法について説明します。 同期クエリは、小さなクエリやローカル システムへのクエリに適しています。
非同期クエリの呼び出し クエリを受信する個別のプロセスを設定する方法について説明します。 非同期クエリはより複雑でセキュリティ レベルは低くなりますが、一般にはシステム パフォーマンスが向上します。

WMI リポジトリへのクエリに加えて、WMI クエリ言語 (WQL) を使用して通知イベントをアプリケーションにルーティングすることもできます。 詳細については、「WMI イベントの受信」を参照してください。

注意

WMI に対して適切にクエリを行うには、WQL について十分に理解している必要があります。 クエリが正しくなかったり、複雑すぎたり、不適切であったりすると、クエリ プロセッサはエラーや予期しない結果を返す可能性があります。 WQL の包括的なガイドについては、「WQL を使用したクエリ」を参照してください。

WQL クエリで使用できる AND キーワードや OR キーワードの数には制限があります。 複雑なクエリで使用される WQL キーワードの数が多いと、WMI が WBEM_E_QUOTA_VIOLATION エラー コードを HRESULT 値として返すことがあります。 WQL キーワードの制限は、クエリの複雑さによって異なります。

VBScript などのスクリプト言語で uint64 または sint64 データ型を使用してプロパティ値のクエリを行うと、WMI が文字列値を返します。 これらの値を比較すると予期しない結果が生じる可能性があるのは、文字列を比較すると数値の比較とは異なる結果が返されるからです。 たとえば、文字列を比較すると "10000000000" は "9" より小さく、数値を比較すると 9 は 10000000000 より小さいのです。 混乱を避けるために、uint64sint64 の型のプロパティが WMI から取得されるときは、CDbl メソッドを VBScript で使用する必要があります。

注意

詳細については、「クラスとインスタンスの情報の操作」を参照してください。