次の方法で共有


Configuration Manager サイト コントロール ファイルの埋め込みプロパティ リストを読み取る方法

Configuration Managerでは、リソース PropLists プロパティ配列から埋め込みオブジェクトのSMS_EmbeddedPropertyList オブジェクトを取得することで、サイト コントロール ファイル リソースから埋め込みプロパティ リストを読み取ります。

埋め込みプロパティ リストには、次のプロパティを設定できます。 詳細については、「 SMS_EmbeddedPropertyList」を参照してください。

説明
PropertyListName 埋め込みプロパティ名。
文字列値の配列。 各配列項目は、1 つのプロパティリストアイテムを表します。

注意

サイトコントロールファイルを変更すると、Configuration Managerサイトに回復不可能な損傷が発生する可能性があります。

サイト コントロール ファイルの埋め込みプロパティ リストを読み取る

  1. SMS プロバイダーへの接続を設定します。 詳細については、「 SMS プロバイダーの基礎」を参照してください。

  2. 手順 1 の接続オブジェクトを使用して、サイト コントロール ファイル リソースを取得します。 詳細については、「Configuration Manager サイト コントロール ファイルについて」を参照してください。

  3. SMS_EmbeddedPropertyList必要な埋め込みプロパティ リストの を取得します。

  4. オブジェクト Values プロパティ配列を使用して、プロパティ リストの値にSMS_EmbeddedPropertyListアクセスします。

次のメソッドの例では、指定されたvaluesパラメーターに、パラメーターによって識別される埋め込みプロパティ リストSMS_EmbeddedPropertyListValues 配列をpropertyListName設定します。 true は、埋め込みプロパティ リストが見つかった場合に返されます。それ以外の場合は、 false が返されます。

これらの関数を呼び出すコードを表示するには、「マネージド コードを使用して Configuration Manager サイト コントロール ファイルを読み書きする方法」を参照するか、「WMI を使用してConfiguration Managerサイト コントロール ファイルを読み書きする方法」を参照してください。

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


Function GetScfEmbeddedPropertyList(resource,  _  
        propertyListName,               _  
        ByRef values)  

    Dim scfPropertyList  

    If IsNull(resource.PropLists) = True Then  
        GetScfPropertyList = False  
        Exit Function  
    End If      

    For each scfPropertyList in resource.PropLists  
       if   scfPropertyList.PropertyListName = propertyListName Then  
            ' Found property list, so return the values array.  
            values = scfPropertyList.Values  
            GetScfEmbeddedPropertyList = True  
            Exit Function  
        End If  
     Next    

     ' Did not find the property list.  
     GetScfEmbeddedPropertyList = False  
End Function  

public bool GetScfEmbeddedPropertyList(  
    IResultObject resource,  
    string propertyListName,  
    out ArrayList values)  
{  
    values = new ArrayList();  
    try  
    {  
        if (resource.EmbeddedPropertyLists.ContainsKey(propertyListName))  
        {  
            values.AddRange(resource.EmbeddedPropertyLists[propertyListName]["Values"].StringArrayValue);  
            return true;  
        }  
    }  
    catch(SmsException e)  
    {  
        Console.WriteLine("Couldn't get the embedded property list: " + e.Message);  
    }  
    return false;  

}  

サンプル メソッドには、次のパラメーターがあります。

パラメーター 説明
Resource -管理: IResultObject
- VBScript: SWbemObject
埋め込みプロパティを含むサイト コントロール ファイル リソース。
propertyListName -管理: String
-Vbscript: String
読み取る埋め込みプロパティ の一覧。
Values - マネージド: String 配列
- VBScript: String 配列
クラス Values SMS_EmbeddedProperty プロパティ。 文字列値の配列。

コードのコンパイル

C# の例には、次のコンパイル要件があります。

名前空間

System

System.Collections.Generic

System.collections

System.text

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

堅牢なプログラミング

エラー処理の詳細については、「Configuration Manager エラーについて」を参照してください。

.NET Framework のセキュリティ

Configuration Manager アプリケーションのセキュリティ保護の詳細については、「ロールベースの管理Configuration Manager」を参照してください。

関連項目

サイトコントロールファイルのConfiguration Managerについて
マネージド コードを使用してConfiguration Manager サイト コントロール ファイルの読み取りと書き込みを行う方法
WMI を使用してConfiguration Manager サイト コントロール ファイルの読み取りと書き込みを行う方法