Sdílet prostřednictvím


Čtení a zápis do řídicího souboru webu Configuration Manager pomocí spravovaného kódu

Pokud chcete zapisovat do řídicího souboru Configuration Manager lokality pomocí spravovaného poskytovatele serveru SMS, získáte definiční soubor lokality dotazem na požadovaný prostředek nebo komponentu. Potom podle potřeby aktualizujete vloženou vlastnost, seznam vložených vlastností nebo seznam více řetězců.

Poznámka

K získání požadovaného prostředku nebo komponenty můžete také použít správce připojení GetInstance .

Spravovaná Configuration Manager automaticky spravuje relaci připojení k řídicímu souboru lokality za vás. Proto nakládáte s objekty IResultObject vrácené z dotazu stejným způsobem jako s objekty IResultObject načtené od poskytovatele serveru SMS.

Čtení a zápis do řídicího souboru webu

  1. Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Připojení k poskytovateli serveru SMS v Configuration Manager pomocí spravovaného kódu.

  2. Pomocí metody Správce připojení QueryProcessor QueryProcessorExecQuery nebo GetInstance získejte požadovaný prostředek souboru ovládacího prvku webu nebo objekt komponenty IResultObject.

  3. Pomocí objektu IResultObject aktualizujte soubor ovládacího prvku lokality.

  4. Použití IResultObject objekt Put metodu potvrdit změny.

Příklad

Následující příklad jazyka C# přistupuje ke komponentě agenta klienta řídicího souboru lokality a vytvoří fiktivní vlastnost, seznam vlastností a seznam více řetězců. Potom odebere provedené aktualizace. Příklad ukazuje, jak dotazovat řídicí soubor webu, provést aktualizace a potvrdit změny v souboru ovládacího prvku lokality.

Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.

public void ReadWriteSCF(WqlConnectionManager connection,string siteCode)  
{  
    try  
    {  

    // Query for the site's site control file client agent settings.  
    IResultObject resources =  
    connection.QueryProcessor.ExecuteQuery  
    ("SELECT * FROM SMS_SCI_ClientComp WHERE ClientComponentName = 'Client Agent' AND SiteCode = '" +  
    siteCode + "'");  

    foreach (IResultObject resource in resources)  
    {          
            // Embedded Properties  

            Console.WriteLine("Embedded property");  
            Console.WriteLine("-----------------");  

            int value = 0;  
            string value1 = "";  
            string value2 = "";  

            // Write a dummy embedded property.  
            this.WriteScfEmbeddedProperty(resource, "Test", 10, "Hello", "World");  

            // Get the embedded property back and display the values.  
            if (this.GetScfEmbeddedProperty(resource, "Test", ref value, ref value1, ref value2))  
            {  
                Console.WriteLine("Value: " + value);  
                Console.WriteLine("Value1: " + value1);  
                Console.WriteLine("Value2: " + value2);  

                // Remove the dummy embedded property.  
                Dictionary<string, IResultObject> EmbeddedProperties = resource.EmbeddedProperties;  
                EmbeddedProperties.Remove("Test");  
                resource.EmbeddedProperties = EmbeddedProperties;  
                resource.Put();  

                // See if the dummy embedded property is still there.  
                if (this.GetScfEmbeddedProperty(resource, "Test", ref value, ref value1, ref value2))  
                {  
                    Console.WriteLine("Test exists");  
                }  
                else  
                {  
                    Console.WriteLine("Test does not exist");  
                }  
            }  
            else  
            {  
                Console.WriteLine("Property not found");  
            }  

            Console.WriteLine();  

            // Embedded property list.  

            Console.WriteLine("Embedded property list");  
            Console.WriteLine("----------------------");  

            // values contains the embedded property list.  
            ArrayList values = new ArrayList();  

            values.Add("Elephant");  
            values.Add("Giraffe");  

            // Write to the resource.  
            this.WriteScfEmbeddedPropertyList(resource, "Animals", values);  

            ArrayList retrievedValues;  

            // Get the embedded property list and display.  
            if (this.GetScfEmbeddedPropertyList(resource, "Animals", out retrievedValues))  
            {  
                foreach (string retrievedValue in retrievedValues)  
                {  
                    Console.WriteLine(retrievedValue);  
                }  

                // Remove one of the entries.  
                retrievedValues.Remove("Elephant");  
                Console.WriteLine();  

                // Update the list.  
                this.WriteScfEmbeddedPropertyList(resource, "Animals", retrievedValues);  

                // Display the list again.  
                this.GetScfEmbeddedPropertyList(resource, "Animals", out retrievedValues);  
                foreach (string retrievedValue in retrievedValues)  
                {  
                    Console.WriteLine(retrievedValue);  
                }  

            }  
            else  
            {  
                Console.WriteLine("None");  
            }  

            Console.WriteLine();  

            // RegMultiStringList.  

            Console.WriteLine("RegMultiStringList");  
            Console.WriteLine("------------------");  

            // valuesStrings is the RegMultiString List.  
            ArrayList valueStrings = new ArrayList();  

            valueStrings.Add("Tom");  
            valueStrings.Add("Harry");  

            this.WriteScfRegMultiStringList(resource, "Names", valueStrings);  

            ArrayList retrievedValuesStrings;  

            if (this.GetScfRegMultiStringList(resource, "Names", out retrievedValuesStrings))  
            {  
                foreach (string retrievedValue in retrievedValuesStrings)  
                {  
                    Console.WriteLine(retrievedValue);  
                }  

                // Remove one of the entries.  
                retrievedValuesStrings.Remove("Tom");  
                Console.WriteLine();  

                // Update the list.  
                this.WriteScfRegMultiStringList(resource, "Names", retrievedValuesStrings);  

                // Display the list again.  
                this.GetScfRegMultiStringList(resource, "Names", out retrievedValuesStrings);  
                foreach (string retrievedValue in retrievedValuesStrings)  
                {  
                    Console.WriteLine(retrievedValue);  
                }  
            }  
            else  
            {  
                Console.WriteLine("None");  
            }  
        }  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed: " + e.Message);  
        throw;  
    }  
}  

Ukázková metoda má následující parametry:

Parametr Typ Popis
connection - WqlConnectionManager Platné připojení k poskytovateli serveru SMS.
siteCode - String Kód lokality pro Configuration Manager lokalitu.

Kompilace kódu

Obory názvů

Systému

System.collections.generic

System.collections

System.componentmodel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Sestavení

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robustní programování

Výjimky Configuration Manager, které mohou být vyvolány, jsou SmsConnectionException a SmsQueryException. Ty se dají zachytit společně s postupem SmsException.

Viz taky

Základy poskytovatele serveru SMSO řídicím souboru webu Configuration Manager
Připojení ke poskytovateli Configuration Manager pomocí spravovaného kódu
Čtení seznamu vložených vlastností souboru ovládacího prvku webu Configuration Manager
Přehled objektů