Megosztás a következőn keresztül:


A Configuration Manager helyvezérlő fájl olvasása és írása felügyelt kód használatával

Ha a felügyelt SMS-szolgáltatóval szeretne írni a Configuration Manager helyvezérlő fájlba, a helydefiníciós fájlt a szükséges erőforrás vagy összetevő lekérdezésével szerezheti be. Ezután szükség szerint frissítenie kell a beágyazott tulajdonságot, a beágyazott tulajdonságlistát vagy a többsztringes listát.

Megjegyzés:

A kapcsolatkezelő GetInstance használatával is lekérheti a szükséges erőforrást vagy összetevőt.

A felügyelt Configuration Manager automatikusan kezeli a helyvezérlő fájlhoz való kapcsolódási munkamenetet. Ezért a lekérdezésből visszaadott IResultObject objektumokat ugyanúgy kezeli, mint az SMS-szolgáltatótól lekért IResultObject objektumokat.

A webhelyvezérlő fájl olvasása és írása

  1. Állítson be egy kapcsolatot az SMS-szolgáltatóval. További információ: Csatlakozás SMS-szolgáltatóhoz a Configuration Manager felügyelt kód használatával című témakörben.

  2. A Csatlakozáskezelő QueryProcessor objektum ExecQuery vagy GetInstance metódusával kérje le a szükséges helyvezérlő fájl erőforrását vagy összetevőjét, az IResultObject objektumot.

  3. Az IResultObject használatával frissítse a helyvezérlő fájlt.

  4. A módosítások véglegesítéséhez használja az IResultObject objektum Put metódusát.

Példa

Az alábbi C#-példa hozzáfér a helyvezérlő fájl ügyfélügynök összetevőéhez, és létrehoz egy üres tulajdonságot, tulajdonságlistát és több sztringlistát. Ezután eltávolítja a végrehajtott frissítéseket. A példa bemutatja, hogyan kérdezheti le a helyvezérlő fájlt, végezhet frissítéseket, és hogyan véglegesíthet módosításokat a helyvezérlő fájlban.

A mintakód meghívásával kapcsolatos információkért lásd: Configuration Manager Kódrészletek hívása.

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

A példametódus a következő paraméterekkel rendelkezik:

Paraméter Típus Leírás
connection - WqlConnectionManager Érvényes kapcsolat az SMS-szolgáltatóval.
siteCode - String A Configuration Manager hely helykódja.

A kód fordítása

Névterek

Rendszer

System.Collections.Generic

System.Collections

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Összeszerelés

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robusztus programozás

A Configuration Manager kivételek az SmsConnectionException és az SmsQueryException. Ezek az SmsException kivétellel együtt is elkaphatók.

Lásd még

Az SMS-szolgáltató alapjaiA Configuration Manager helyvezérlő fájl
Csatlakozás Configuration Manager-szolgáltatóhoz felügyelt kód használatával
Configuration Manager webhelyvezérlő fájl beágyazott tulajdonságlistájának olvasása
Objektumok áttekintése