Настройка параметров инвентаризации программного обеспечения

Параметры агента клиента инвентаризации программного обеспечения задаются в Configuration Manager путем изменения необходимых параметров файла управления сайтом.

Изменение параметров агента клиента инвентаризации программного обеспечения

  1. Настройте подключение к поставщику SMS.

  2. Установите подключение к разделу Клиентского агента инвентаризации программного обеспечения файла элемента управления сайтом с помощью класса SMS_SCI_ClientComp .

  3. Циклически просматривайте массив доступных свойств, при необходимости внося изменения.

  4. Зафиксируйте изменения в файле элемента управления сайтом.

Пример

В следующем примере задаются параметры агента клиента инвентаризации программного обеспечения с помощью класса SMS_SCI_ClientComp для подключения к файлу элемента управления сайта и изменения свойств.

Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.


Sub ConfigureSoftwareInventoryClientAgentSettings(swbemServices,             _  
                                                  swbemContext,              _  
                                                  siteCode,                  _  
                                                  enableDisableClientAgent,  _  
                                                  newInventorySchedule)  

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

    Query = "SELECT * FROM SMS_SCI_ClientComp " & _  
    "WHERE ClientComponentName = 'Software Inventory Agent' " & _  
    "AND SiteCode = '" & siteCode & "'"            

    Set SCIComponentSet = swbemServices.ExecQuery(Query, ,wbemFlagForwardOnly Or wbemFlagReturnImmediately, swbemContext)  

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

        ' Set the client agent by setting the Flags value to 0 or 1 using the enableDisableClientAgent variable.  
        wscript.echo " "  
        wscript.echo "Software Inventory Agent"  
        wscript.echo "Current value " &  SCIComponent.Flags  

        ' Modify the value.                  
        SCIComponent.Flags = enableDisableClientAgent  
        wscript.echo "New value " & enableDisableClientAgent  

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

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

                'Modify the value.  
                vProperty.Value2 = newInventorySchedule  
                wscript.echo "New value " & newInventorySchedule  
            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 ConfigureSoftwareInventoryClientAgentSettings(WqlConnectionManager connection,  
                                                          string siteCode,  
                                                          string enableDisableClientAgent,  
                                                          string newInventorySchedule)  
{  
    try  
    {  
        IResultObject siteDefinition = connection.GetInstance(@"SMS_SCI_ClientComp.FileType=1,ItemType='Client Component',SiteCode='" + siteCode + "',ItemName='Software Inventory Agent'");  

        // Setting: Enable Client Agent  
        // Enable or disable the client agent by setting the Flags value to 0 or 1 using the enableDisableClientAgent variable.   
        Console.WriteLine();  
        Console.WriteLine("Software Update Client Agent");  
        Console.WriteLine("Current value: " + siteDefinition["Flags"].StringValue);  

        // Change value using the enableDisableSUMClientAgent value passed in.   
        siteDefinition["Flags"].StringValue = enableDisableClientAgent;  
        Console.WriteLine("New value    : " + enableDisableClientAgent);  

        foreach (KeyValuePair<string, IResultObject> kvp in siteDefinition.EmbeddedProperties)  
        {  
            // Create temporary working copy of embedded properties.  
            Dictionary<string, IResultObject> embeddedProperties = siteDefinition.EmbeddedProperties;  

            // Setting: Inventory Schedule  
            if (kvp.Value.PropertyList["PropertyName"] == "Inventory Schedule")  
            {  
                Console.WriteLine();  
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);  
                Console.WriteLine("Current value: " + embeddedProperties[kvp.Value.PropertyList["PropertyName"]]["Value2"].StringValue);  

                // Change value using the newEvaluationSchedule value passed in.   
                embeddedProperties["Inventory Schedule"]["Value2"].StringValue = newInventorySchedule;  
                Console.WriteLine("New value    : " + newInventorySchedule);  
            }  

            // 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 Допустимый объект контекста. Дополнительные сведения см. в разделе Добавление квалификатора контекста Configuration Manager с помощью WMI.
siteCode -Управляемых: String
-Vbscript: String
Код сайта.
enableDisableClientAgent -Управляемых: String
-Vbscript: String
Значение для включения или отключения агента клиента.

Отключено — 0

Включено — 1
newInventorySchedule -Управляемых: String
-Vbscript: String
Значение для задания расписания инвентаризации.
newScanInterval -Управляемых: String
-Vbscript: String
Значение для задания интервала сканирования.

Компиляция программы

Для этого примера на C# требуется следующее:

Пространства имен

System;

System.Collections.Generic;

System.Text

Майкрософт. ConfigurationManagement.ManagementProvider

Майкрософт. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Надежное программирование

Дополнительные сведения об обработке ошибок см. в разделе Сведения об ошибках Configuration Manager.

Безопасность .NET Framework

Дополнительные сведения о защите приложений Configuration Manager см. в статье Configuration Manager администрирование на основе ролей.

См. также

Сведения об инвентаризации Configuration Manager
Сведения о файле элемента управления сайтом Configuration Manager
Чтение и запись в файл управления сайтом Configuration Manager с помощью управляемого кода
Чтение и запись в файл элемента управления сайтом Configuration Manager с помощью WMI
Класс WMI сервера SMS_SCI_Component
Сведения о расписанияхСоздание маркера расписания