How to Configure Software Inventory Settings (Jak skonfigurować ustawienia spisu oprogramowania)

Skonfiguruj ustawienia agenta klienta spisu oprogramowania w Configuration Manager, modyfikując wymagane ustawienia pliku sterowania lokacji.

Aby zmodyfikować ustawienia agenta klienta spisu oprogramowania

  1. Skonfiguruj połączenie z dostawcą programu SMS.

  2. Utwórz połączenie z sekcją agent klienta spisu oprogramowania w pliku kontrolnym lokacji przy użyciu klasy SMS_SCI_ClientComp .

  3. Przepętlenie przez tablicę dostępnych właściwości, co umożliwia wprowadzanie zmian w razie konieczności.

  4. Zatwierdź zmiany w pliku kontrolnym lokacji.

Przykład

Poniższy przykład ustawia ustawienia agenta klienta spisu oprogramowania przy użyciu klasy SMS_SCI_ClientComp do nawiązywania połączenia z plikiem kontrolnym lokacji i zmieniania właściwości.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz wywoływanie Configuration Manager fragmentów kodu.


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;  
    }  
}  

Przykładowa Metoda ma następujące parametry:

Parametr Typ Opis
- connection
- swbemServices
Zarządzanych WqlConnectionManager
-VBScript: SWbemServices
Prawidłowe połączenie z dostawcą programu SMS.
swbemContext VBScript SWbemContext Prawidłowy obiekt kontekstu. Aby uzyskać więcej informacji, zobacz jak dodać kwalifikator kontekstu Configuration Manager przy użyciu usługi WMI.
siteCode Zarządzanych String
VBScript String
Kod lokacji.
enableDisableClientAgent Zarządzanych String
VBScript String
Wartość służąca do włączania lub wyłączania agenta klienta.

Wyłączone-0

Włączone — 1
newInventorySchedule Zarządzanych String
VBScript String
Wartość służąca do ustawiania harmonogramu spisu.
newScanInterval Zarządzanych String
VBScript String
Wartość służąca do ustawiania interwału skanowania.

Kompilowanie kodu

Ten przykład w języku C# wymaga:

Przestrzenie nazw

System

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement. ManagementProvider

Microsoft.ConfigurationManagement. ManagementProvider. WqlQueryEngine

Zestaw

adminui. wqlqueryengine

microsoft.configurationmanagement. managementprovider

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

Zabezpieczenia.NET Framework

Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager Administracja oparta na rolach.

Zobacz też

Informacje o Configuration Manager spisie
Informacje o Configuration Manager pliku sterowania lokacji
Jak odczytać i zapisać w pliku sterowania lokacji Configuration Manager za pomocą kodu zarządzanego
Jak odczytać i zapisać w pliku sterowania lokacji Configuration Manager przy użyciu usługi WMI
Klasa WMI serwera SMS_SCI_Component
Informacje o harmonogramach tworzenia tokenu harmonogramu