次の方法で共有


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 Management Instrumentation
オブジェクトの概要WMI を使用してConfiguration Manager オブジェクト クラス メソッドを呼び出す方法
WMI を使用してConfiguration Managerで SMS プロバイダーに接続する方法
WMI を使用してConfiguration Manager オブジェクトを作成する方法
WMI を使用してConfiguration Manager オブジェクトを削除する方法
WMI を使用してConfiguration Manager オブジェクトを変更する方法
WMI を使用して非同期Configuration Manager クエリを実行する方法
WMI を使用してConfiguration Manager オブジェクトを読み取る方法
WMI を使用して遅延プロパティを読み取る方法
拡張 WMI クエリ言語のConfiguration Manager
結果セットのConfiguration Manager
特殊なクエリをConfiguration Managerする
クエリについて