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


Az 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öbbsztringes listá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

SMS Provider fundamentalsAbout the Configuration Manager Site Control FileHow to Connect to a Configuration Manager Provider using Managed CodeHow to Read a Configuration Manager Site Control File Embedded Property ListObjects overview