必要なサイト コントロール ファイルの設定を変更して、Configuration Managerで Active Directory グループ検出の設定を構成します。
Active Directory グループ探索を構成するには
SMS プロバイダーへの接続を設定します。
クラスを使用して、サイト コントロール ファイルの Active Directory グループ検出セクションに接続します
SMS_SCI_Component
。使用可能なプロパティの配列をループして、必要に応じて変更を加えます。
サイト コントロール ファイルに変更をコミットします。
例
次の例では、 クラスを使用してサイト コントロール ファイルに接続し、プロパティを 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する方法