次の方法で共有


WMI を使用して同期Configuration Manager クエリを実行する方法

Configuration Managerでは、SWbemServices オブジェクト ExecQuery メソッドを呼び出して WQL クエリを渡すことで、Configuration Manager オブジェクトに対して同期クエリを実行します。

同期クエリは、クエリの期間中、アプリケーションのプロセスを制御するクエリです。 同期クエリは、大規模なクエリやネットワーク経由のクエリに対してアプリケーションをロックする可能性があります。 または、クエリの実行中にアプリケーションに制御を返す非同期クエリを実行することもできます。 詳細については、「マネージド コードを使用して非同期Configuration Manager クエリを実行する方法」を参照してください。

注:

遅延プロパティは、同期クエリでは返されません。 詳細については、「WMI を 使用して遅延プロパティを読み取る方法」を参照してください。

同期クエリを実行するには

  1. SMS プロバイダーへの接続を設定します。 詳細については、「WMI を使用してConfiguration Managerで SMS プロバイダーに接続する方法」を参照してください。

  2. 手順 1 から取得した SWbemServices オブジェクトを使用して、ExecQuery メソッドを使用して、クエリ結果を含む SWbemObjectSet コレクションを取得します。

  3. SWbemObjectSet コレクションを反復処理して、クエリによって返される各オブジェクトの SWbemObject にアクセスします。

次の例では、Configuration Manager内のすべてのパッケージの同期クエリを実行します。

サンプル コードの呼び出しについては、「Configuration Manager コード スニペットの呼び出し」を参照してください。

Sub QueryPackages(connection)

    On Error Resume next

    Dim packages
    Dim package

    ' Run the query.
    Set packages = _
        connection.ExecQuery("Select * From SMS_Package")

    If Err.Number<>0 Then
        Wscript.Echo "Couldn't get Packages"
        Wscript.Quit
    End If

    For Each package In packages
        WScript.Echo  package.Name
    Next

    If packages.Count=0 Then
        Wscript.Echo "No packages found"
    End If

End Sub

この例のメソッドには、次のパラメーターがあります。

パラメーター 説明
connection SWbemServices SMS プロバイダーへの有効な接続。

関連項目

Windows 管理インストルメンテーションオブジェクトの概要WMI を使用してConfiguration Manager オブジェクト クラス メソッドを呼び出す方法 WMI使用してConfiguration Managerで SMS プロバイダーに接続する方法 WMI を使用してConfiguration Manager オブジェクトを作成する方法WMI を使用してConfiguration Manager オブジェクトを削除する WMIを使用してConfiguration Manager オブジェクトを変更する方法 WMI を使用して非同期Configuration Managerクエリを実行する方法 CONFIGURATION MANAGERWMI を使用したオブジェクト WMI使用した遅延プロパティの読み取り方法Configuration Manager拡張 WMI クエリ言語Configuration Manager結果セットConfiguration Managerクエリに関する特別なクエリ