Lesen und Schreiben in die Configuration Manager-Websitesteuerungsdatei mithilfe von verwaltetem Code

Um mithilfe des verwalteten SMS-Anbieters in die Configuration Manager Websitesteuerungsdatei zu schreiben, rufen Sie die Websitedefinitionsdatei ab, indem Sie die erforderliche Ressource oder Komponente abfragen. Anschließend aktualisieren Sie die eingebettete Eigenschaft, die Liste der eingebetteten Eigenschaften oder die Liste mit mehreren Zeichenfolgen nach Bedarf.

Hinweis

Sie können auch den Verbindungs-Manager GetInstance verwenden, um die erforderliche Ressource oder Komponente abzurufen.

Die verwaltete Configuration Manager verwaltet die Verbindungssitzung mit der Standortsteuerungsdatei automatisch für Sie. Daher behandeln Sie die von der Abfrage zurückgegebenen IResultObject-Objekte auf die gleiche Weise wie IResultObject-Objekte , die vom SMS-Anbieter abgerufen wurden.

So lesen und schreiben Sie die Websitesteuerungsdatei

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem Code.

  2. Verwenden Sie die Verbindungs-Manager QueryProcessor-ObjektExecQuery oder getInstance-Methode, um die erforderliche Websitesteuerelementdateiressource oder das Komponentenobjekt IResultObject abzurufen.

  3. Aktualisieren Sie die Websitesteuerungsdatei mithilfe von IResultObject .

  4. Verwenden Sie die Put-Methode des IResultObject-Objekts, um die Änderungen zu committen.

Beispiel

Im folgenden C#-Beispiel wird auf die Client-Agent-Komponente der Standortsteuerungsdatei zugegriffen und eine Dummyeigenschaft, eine Eigenschaftenliste und eine Liste mit mehreren Zeichenfolgen erstellt. Anschließend werden die vorgenommenen Updates entfernt. Im Beispiel wird veranschaulicht, wie Sie die Websitesteuerungsdatei abfragen, Aktualisierungen vornehmen und Änderungen an der Websitesteuerungsdatei committen.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.

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

Die Beispielmethode verfügt über die folgenden Parameter:

Parameter Typ Beschreibung
connection - WqlConnectionManager Eine gültige Verbindung mit dem SMS-Anbieter.
siteCode - String Der Standortcode für die Configuration Manager Website.

Kompilieren des Codes

Namespaces

System

System.Collections.Generic

System.Collections

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuste Programmierung

Die Configuration Manager Ausnahmen, die ausgelöst werden können, sind SmsConnectionException und SmsQueryException. Diese können zusammen mit SmsException abgefangen werden.

Siehe auch

Grundlagen des SMS-AnbietersZur Configuration Manager Site Control-Datei
Herstellen einer Verbindung mit einem Configuration Manager Anbieter mithilfe von verwaltetem Code
Lesen einer Configuration Manager Eingebetteten Eigenschaftenliste für Die Websitesteuerungsdatei
Übersicht über Objekte