How to apply custom client settings
In Configuration Manager, you apply custom client settings by creating an instance of a Client Configuration class, and then deploying the custom client settings by creating an instance of the SMS_ClientSettingsAssignment
class and associating the instance of the Client Configuration class and a target collection.
To apply custom client settings
Set up a connection to the SMS Provider.
Create an instance of a Client Configuration class (such as
SMS_StateSystemConfig
used below).Populate specific custom client agent settings.
Create an instance of the
SMS_ClientSettingsAssignment
class.Populate the client settings assignment values.
ClientSettingsID
to identify the custom client settings instance andCollectionID
to identify the target collection for the deployment of the custom client settings.
Example
The following example applies custom client settings by creating an instance of a Client Configuration class, and then deploying the custom client settings by creating an instance of the SMS_ClientSettingsAssignment
class and associating the instance of the Client Configuration class and a target collection.
For information about calling the sample code, see Calling Configuration Manager Code Snippets.
public void ApplyCustomClientSettings(WqlConnectionManager connection,string targetCollectionID){
try
{
// Create a new instance of specific client agent settings (in this case State Messaging)
IResultObject newCustomClientAgentSettings = connection.CreateEmbeddedObjectInstance("SMS_StateSystemConfig");
// Populate specific custom client agent settings
newCustomClientAgentSettings["BulkSendInterval"].IntegerValue = 120;
newCustomClientAgentSettings["BulkSendIntervalHigh"].IntegerValue = 5;
newCustomClientAgentSettings["BulkSendIntervalLow"].IntegerValue = 30;
// Create a new array list to hold the custom client agent settings object(s)
List<IResultObject> tempAgentConfigurationsArray = new List<IResultObject>();
// Add the custom client agent settings embedded object to the local array list
tempAgentConfigurationsArray.Add(newCustomClientAgentSettings);
// Create a new instance of SMS_ClientSettings
IResultObject newClientSettings = connection.CreateInstance("SMS_ClientSettings");
// Populate the client agent settings
newClientSettings["Name"].StringValue = "Custom State Messaging Configuration";
// Add the array of custom client agent settinsg object(s) to the AgentConfigurations property
newClientSettings.SetArrayItems("AgentConfigurations", tempAgentConfigurationsArray);
// Save and retrieve the new instance of SMS_ClientSettings
newClientSettings.Put();
newClientSettings.Get();
// Get the SettingsID value of the new SMS_ClientSettings instance
Int32 SettingsID = newClientSettings["SettingsID"].IntegerValue;
// Create a new instance of SMS_ClientSettingsAssignment
IResultObject newClientSettingsAssignment = connection.CreateInstance("SMS_ClientSettingsAssignment");
// Populate the client settings assignment values
// ClientSettingsID to identify the custom client settings
// CollectionID to identify the target collection for the custom client settings
newClientSettingsAssignment["ClientSettingsID"].IntegerValue = SettingsID;
newClientSettingsAssignment["CollectionID"].StringValue = targetCollectionID;
// Save the new instance of the client settings assignment.
newClientSettingsAssignment.Put();
}
catch (SmsException ex)
{
Console.WriteLine("Failed. Error: " + ex.InnerException.Message);
}
}
The example method has the following parameters:
Parameter | Type | Description |
---|---|---|
connection |
- Managed: WqlConnectionManager |
A valid connection to the SMS Provider. |
targetCollectionID |
- Managed: String |
The target collection for the custom client settings deployment. |
Compiling the Code
This C# example requires:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Robust Programming
For more information about error handling, see About Configuration Manager Errors.
.NET Framework Security
For more information about securing Configuration Manager applications, see Configuration Manager role-based administration.
See Also
Configuration Manager SDK
SMS_ClientSettingsAssignment Server WMI Class
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for