管理情報のクエリ
WMI には、任意の検索条件に基づいてデータのクエリ実行や情報のサブセットを検索する、たいへん便利な機能があります。分散環境の場合は、処理の効率を考慮するため、クエリは情報のソースの周辺 (データのソースを格納しているコンピュータ上) で実行され、結果だけが送信されます。WMI でのクエリの詳細については、MSDN の WMI のドキュメントを参照してください。
ManagementObjectSearcher クラスを使用してクエリを呼び出す方法を次のコード例に示します。クエリは WMI でサポートされている WQL 形式の文字列として指定するか、または使用できるクエリ クラスの 1 つを使用して構築できます。この例では、SelectQuery クラスを使用して、システム環境変数だけをクエリ実行するよう指定しています。結果は、列挙可能なコレクションとして返されます。
using System;
using System.Management;
// This example demonstrates how to perform an object query.
public class QueryInstances {
public static int Main(string[] args) {
// Create a query for system environment variables only
SelectQuery query =
new SelectQuery("Win32_Environment", "UserName=\"<SYSTEM>\"");
// Initialize an object searcher with this query
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(query);
// Get the resulting collection and loop through it
foreach (ManagementBaseObject envVar in searcher.Get()) {
Console.WriteLine("System environment variable {0} = {1}",
envVar["Name"], envVar["VariableValue"]);
}
return 0;
}
}
[Visual Basic]
Imports System
Imports System.Management
' This example demonstrates how to perform an object query.
Public Class QueryInstances
Overloads Public Shared Function Main(args() As String) As Integer
' Create a query for system environment variables only
Dim query As _
New SelectQuery("Win32_Environment", "UserName=""<SYSTEM>""")
' Initialize an object searcher with this query
Dim searcher As New ManagementObjectSearcher(query)
' Get the resulting collection and loop through it
Dim envVar As ManagementBaseObject
For Each envVar In searcher.Get()
Console.WriteLine("System environment variable {0} = {1}", _
envVar("Name"), envVar("VariableValue"))
Next envVar
Return 0
End Function
End Class
参照
System.Management による管理情報へのアクセス | 管理オブジェクトのコレクションの取得 | 管理イベントへのサブスクライブと管理イベントの処理 | 管理オブジェクトのメソッドの実行 | リモート管理と接続オプション | 厳密に型指定されたオブジェクトの使用