Cómo leer y escribir en el archivo de control de sitio de Configuration Manager mediante código administrado

Para escribir en el archivo de control de sitio Configuration Manager mediante el proveedor de SMS administrado, puede obtener el archivo de definición de sitio consultando el recurso o componente necesario. A continuación, actualice la propiedad incrustada, la lista de propiedades incrustadas o la lista de varias cadenas según sea necesario.

Nota:

También puede usar getInstance del administrador de conexiones para obtener el recurso o componente necesario.

El Configuration Manager administrado administra automáticamente la sesión de conexión al archivo de control de sitio. Por lo tanto, los objetos IResultObject devueltos de la consulta se tratan de la misma manera que los objetos IResultObject recuperados del proveedor de SMS.

Para leer y escribir en el archivo de control de sitio

  1. Configure una conexión con el proveedor de SMS. Para obtener más información, vea Cómo conectarse a un proveedor de SMS en Configuration Manager mediante código administrado.

  2. Use el Administrador de conexiones método ExecQuery o GetInstance del objeto QueryProcessor para obtener el recurso de archivo de control de sitio o el objeto IResultObject del componente necesarios.

  3. Con IResultObject , actualice el archivo de control de sitio.

  4. Use el método Put del objeto IResultObject para confirmar los cambios.

Ejemplo

En el siguiente ejemplo de C# se obtiene acceso al componente del agente cliente del archivo de control de sitio y se crea una propiedad ficticia, una lista de propiedades y una lista de varias cadenas. A continuación, quita las actualizaciones que se realizaron. En el ejemplo se muestra cómo consultar el archivo de control de sitio, realizar actualizaciones y confirmar cambios en el archivo de control de sitio.

Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de Configuration Manager.

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

El método de ejemplo tiene los parámetros siguientes:

Parámetro Tipo Descripción
connection - WqlConnectionManager Una conexión válida al proveedor de SMS.
siteCode - String Código de sitio para el sitio de Configuration Manager.

Compilar el código

Espacios de nombres

System

System.Collections.Generic

System.Collections

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Ensamblado

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programación sólida

Las excepciones Configuration Manager que se pueden generar son SmsConnectionException y SmsQueryException. Estos se pueden detectar junto con SmsException.

Consulta también

Aspectos básicos del proveedor de SMSsobre el archivo de control de sitio Configuration Manager
Conexión a un proveedor de Configuration Manager mediante código administrado
Cómo leer una lista de propiedades incrustadas Configuration Manager archivo de control de sitio
Introducción a objetos