How to Read the Tally Intervals for a Configuration Manager Site

In Configuration Manager, you can read the available tally intervals for a site by inspecting the site control file SMS_COMPONENT_STATUS_SUMMARIZER object Summary_Intervals embedded property list.

You use tally intervals for querying component (SMS_ComponentSummarizer) and site detail (SMS_SiteDetailSummarizer) summarizer classes. For more information, see About Configuration Manager Status Summarizers.

To read the tally intervals for a site

  1. Set up a connection to the SMS Provider. For more information, see SMS Provider fundamentals.

  2. Perform a query for the site's SMS_COMPONENT_STATUS_SUMMARIZER property lists

  3. In the results from step two, search for the Summary_Intervals embedded property list.

  4. Display the contents of the embedded property list.

Example

The following example method returns a SMS_TaskSequence object after importing it from the supplied XML.

For information about calling the sample code, see Calling Configuration Manager Code Snippets.

Sub ShowSiteTallyIntervals(connection, siteCode)  

    Dim SCIComponent              'SMS_SCI_Component class  
    Dim SCIComponentSet         'Enumeration of SMS_SCI_Component  
    Dim query   
    Dim i   
    Dim vProperty                     'Embedded property  

    query = "SELECT PropLists FROM SMS_SCI_Component " & _  
            "WHERE ComponentName = 'SMS_COMPONENT_STATUS_SUMMARIZER' " & _  
            "AND SiteCode = '" + siteCode + "'"  

    ' You do not need to get a copy of the site control file just to read it.  
    Set SCIComponentSet = connection.ExecQuery(query)  

    ' The query returns only one instance.  
    For Each SCIComponent In SCIComponentSet  
        For Each vProperty In SCIComponent.PropLists  
            If vProperty.PropertyListName = "Summary_Intervals" Then  
                For i = 0 To UBound(vProperty.Values)  
                    WScript.Echo vProperty.Values(i)   
                Next  
            End If  
        Next  
    Next  
 End Sub  
public void ShowSiteTallyIntervals(WqlConnectionManager connection, string siteCode)  
{  
    try  
    {  
        // Query for the site's site control file SMS_COMPONENT_STATUS_SUMMARIZER property lists.  
        IResultObject query =   
            connection.QueryProcessor.ExecuteQuery("SELECT PropLists FROM SMS_SCI_Component " +  
            "WHERE ComponentName = 'SMS_COMPONENT_STATUS_SUMMARIZER' " +  
            "AND SiteCode = '" + siteCode + "'");  

        foreach (IResultObject r in query)  
        {  
            // Get the summary intervals and display them.  
          if (r.EmbeddedPropertyLists.ContainsKey("Summary_Intervals"))  
            {  
                Console.WriteLine(r.EmbeddedPropertyLists["Summary_Intervals"]["PropertyListName"].StringValue);  
                foreach (string value in r.EmbeddedPropertyLists["Summary_Intervals"]["Values"].StringArrayValue)  
                {  
                    Console.WriteLine(value);  
                }  
            }  
            else  
            {  
                Console.WriteLine("Not found");  
                return;  
            }  
        }  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to tally intervals: " + e.Message);  
        throw;  
    }  
}  

The example method has the following parameters:

Parameter Type Description
connection - Managed: WqlConnectionManager
- VBScript: SWbemServices
A valid connection to the SMS Provider. For more information, see SMS Provider fundamentals.
siteCode - Managed: String
- VBScript: String
A valid Configuration Manager site code.

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

About status messages About Configuration Manager Tally Intervals
About Configuration Manager Status Summarizers