如何使用 Managed 程式碼來讀取消極屬性

若要從查詢中傳回的 設定管理員 物件讀取延遲屬性,您可以取得物件實例,以從 SMS 提供者擷取任何延遲物件屬性。

注意事項

如果您知道 WMI 物件的完整路徑,對 GetInstance 方法的呼叫會傳回 WMI 物件以及任何消極屬性。 如需詳細資訊,請參閱如何使用 Managed 程式碼讀取 設定管理員 物件。

如需詳細資訊,請參閱 設定管理員 消極式屬性。

若要讀取消極式屬性

  1. 設定與 SMS 提供者的連線。 如需詳細資訊,請參閱如何使用託管程式碼連線到 設定管理員 中的 SMS 提供者。

  2. 使用 QueryProcessor 物件查詢 設定管理員 物件。

  3. 逐一查看查詢結果。

  4. 使用您在步驟 1 中取得的 WqlConnectionManager ,呼叫 GetInstance 以取得您要從中取得消極屬性的每個查詢物件的 IResultObject 物件。

範例

下列 C# 程式碼範例會查詢所有 SMS_Collection 物件,然後顯示從 lazy 屬性取得的 CollectionRules 規則名稱。

如需呼叫範例程式碼的詳細資訊,請參閱 呼叫 設定管理員 程式碼片段。

public void ReadLazyProperty(WqlConnectionManager connection)
{
    try
    {
        // Query all collections.
        IResultObject collections = connection.QueryProcessor.ExecuteQuery("Select * from SMS_Collection");
        foreach (IResultObject collection in collections)
        {
            // Get the collection object and lazy properties.
            collection.Get();

            Console.WriteLine(collection["Name"].StringValue);

            // Get the rules.
            List<IResultObject> rules = collection.GetArrayItems("CollectionRules");
            if (rules.Count == 0)
            {
                Console.WriteLine("No rules");
                Console.WriteLine();
                continue;
            }

            foreach (IResultObject rule in rules)
            {
                // Display rule names.
                Console.WriteLine("Rule name: " + rule["RuleName"].StringValue);
            }

            Console.WriteLine();
        }
    }
    catch (SmsQueryException ex)
    {
        Console.WriteLine("Failed to get collection. Error: " + ex.Message);
        throw;
    }
}

此範例方法具有下列參數:

參數 Type 描述
connection WqlConnectionManager 與 SMS 提供者的有效連線。

正在編譯程式碼

命名空間

系統

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

組件

Microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

健全的程式設計

可能引發的 設定管理員 例外狀況包括 SmsConnectionException 和 SmsQueryException。 這些可以與 SmsException 一起捕捉。

另請參閱

物件概觀

設定管理員 消極屬性

如何使用 Managed 程式碼來呼叫 設定管理員 物件類別方法

如何使用託管程式碼連線到 設定管理員 提供者

如何使用 Managed 程式碼建立 設定管理員 物件

如何使用 Managed 程式碼修改 設定管理員 物件

如何使用 Managed 程式碼執行非同步 設定管理員 查詢

如何使用 Managed 程式碼執行同步 設定管理員 查詢

如何使用 Managed 程式碼讀取 設定管理員 物件