次の方法で共有


Active Directory グループ検出を構成する方法

必要なサイト コントロール ファイルの設定を変更して、Configuration Managerで Active Directory グループ検出の設定を構成します。

Active Directory グループ探索を構成するには

  1. SMS プロバイダーへの接続を設定します。

  2. クラスを使用して、サイト コントロール ファイルの Active Directory グループ検出セクションに接続します SMS_SCI_Component

  3. 使用可能なプロパティの配列をループして、必要に応じて変更を加えます。

  4. サイト コントロール ファイルに変更をコミットします。

次の例では、 クラスを使用してサイト コントロール ファイルに接続し、プロパティを SMS_SCI_Component 変更することで、Active Directory グループ探索の設定を設定します。

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


Sub ConfigureADGroupDiscoverySettings(swbemServices,    _  
                                      swbemContext,             _  
                                      siteCode,                 _  
                                      serverName,               _  
                                      newStartupSchedule,       _  
                                      enableDisableDiscovery)  

    ' Load site control file and get the SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT section.  
    swbemServices.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=""" & siteCode & """", "Refresh", , , swbemContext  

    Query = "SELECT * FROM SMS_SCI_Component " &                         _  
    "WHERE ItemName = 'SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT|" & serverName & "' " &  _     
    "AND SiteCode = '" & siteCode & "'"             

    ' Get the SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT properties.  
    Set SCIComponentSet = swbemServices.ExecQuery(Query, ,wbemFlagForwardOnly Or wbemFlagReturnImmediately, swbemContext)  

    ' Only one instance is returned from the query.  
    For Each SCIComponent In SCIComponentSet  

        ' Display the server name.  
        wscript.echo "Server: " & SCIComponent.Name        

        ' Loop through the array of embedded SMS_EmbeddedProperty instances.  
        For Each vProperty In SCIComponent.Props  

            ' Setting: Startup Schedule  
            If vProperty.PropertyName = "Startup Schedule" Then  
                wscript.echo " "  
                wscript.echo vProperty.PropertyName  
                wscript.echo "Current value " &  vProperty.Value1                 

                ' Modify the value.  
                vProperty.Value1 = newStartupSchedule  
                wscript.echo "New value " & newStartupSchedule  
            End If  

            ' Setting: SETTINGS  
            If vProperty.PropertyName = "SETTINGS" Then  
                wscript.echo " "  
                wscript.echo vProperty.PropertyName  
                wscript.echo "Current value " &  vProperty.Value1                 

                ' Modify the value.  
                vProperty.Value1 = enableDisableDiscovery  
                wscript.echo "New value " & enableDisableDiscovery  
            End If  

         Next  

         ' Update the component in your copy of the site control file. Get the path  
         ' to the updated object, which could be used later to retrieve the instance.  
          Set SCICompPath = SCIComponent.Put_(wbemChangeFlagUpdateOnly, swbemContext)  

    Next  

    ' Commit the change to the actual site control file.  
    Set InParams = swbemServices.Get("SMS_SiteControlFile").Methods_("CommitSCF").InParameters.SpawnInstance_  
    InParams.SiteCode = siteCode  
    swbemServices.ExecMethod "SMS_SiteControlFile", "CommitSCF", InParams, , swbemContext  

End Sub  


public void ConfigureADGroupDiscoverySettings(WqlConnectionManager connection,  
                                                      string siteCode,  
                                                      string serverName,  
                                                      string newStartupSchedule,  
                                                      string enableDisableDiscovery)  

{  
    try  
    {  
        // Connect to SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT section of the site control file.  
        IResultObject siteDefinition = connection.GetInstance(@"SMS_SCI_Component.FileType=2,ItemType='Component',SiteCode='" + siteCode + "',ItemName='SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT|" + serverName + "'");  

        // Create temporary copy of the embedded properties.  
        Dictionary<string, IResultObject> embeddedProperties = siteDefinition.EmbeddedProperties;  

        // Enumerate through the embedded properties and makes changes as needed.  
        foreach (KeyValuePair<string, IResultObject> kvp in siteDefinition.EmbeddedProperties)  
        {  
            // Setting: Startup Schedule  
            if (kvp.Value.PropertyList["PropertyName"] == "Startup Schedule")  
            {  
                Console.WriteLine();  
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);  
                Console.WriteLine("Current value: " + kvp.Value.PropertyList["Value1"]);  

                // Change value using the newStartupSchedule value passed in.  
                embeddedProperties["Startup Schedule"]["Value1"].StringValue = newStartupSchedule;  
                Console.WriteLine("New value    : " + newStartupSchedule);  
            }  

            // Setting: SETTINGS                      
            if (kvp.Value.PropertyList["PropertyName"] == "SETTINGS")  
            {  
                Console.WriteLine();  
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);  
                Console.WriteLine("Current value: " + kvp.Value.PropertyList["Value1"]);  

                // Change value using the newEnableHeartbeatDDR value passed in.   
                embeddedProperties["SETTINGS"]["Value1"].StringValue = enableDisableDiscovery;  
                Console.WriteLine("New value    : " + enableDisableDiscovery);  
            }  
        }  

        // Store the settings that have changed.  
        siteDefinition.EmbeddedProperties = embeddedProperties;  

        // Save the settings.   
        siteDefinition.Put();  
    }  

    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed. Error: " + ex.InnerException.Message);  
        throw;  
    }  
}  

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

パラメーター 説明
- connection
- swbemServices
-管理: WqlConnectionManager
- VBScript: SWbemServices
SMS プロバイダーへの有効な接続。
swbemContext -Vbscript: SWbemContext 有効なコンテキスト オブジェクト。 詳細については、「WMI を使用してConfiguration Managerコンテキスト修飾子を追加する方法」を参照してください。
siteCode -管理: String
-Vbscript: String
サイト コード。
serverName -管理: String
-Vbscript: String
サーバー名。
newStartupSchedule -管理: String
-Vbscript: String
新しいスケジュール。
enableDisableDiscovery -管理: String
-Vbscript: String
検出方法を有効または無効にする値。

無効 - INACTIVE

有効 - ACTIVE

コードのコンパイル

この C# の例では、次のものが必要です。

名前空間

System

System.Collections.Generic

System.text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

堅牢なプログラミング

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

.NET Framework のセキュリティ

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

関連項目

サイトコントロールファイルのConfiguration Managerについて
マネージド コードを使用してConfiguration Manager サイト コントロール ファイルの読み取りと書き込みを行う方法
WMI を使用してConfiguration Manager サイト コントロール ファイルの読み取りと書き込みを行う方法
SMS_SCI_Component サーバー WMI クラス
スケジュールについて スケジュールトークンをCreateする方法