Aracılığıyla paylaş


Yönetilen Kod Kullanarak Configuration Manager Site Denetim Dosyasını Okuma ve Yazma

Yönetilen SMS Sağlayıcısı'nı kullanarak Configuration Manager site denetim dosyasına yazmak için, gerekli kaynağı veya bileşeni sorgulayarak site tanımı dosyasını alırsınız. Daha sonra katıştırılmış özelliği, katıştırılmış özellik listesini veya çok dizeli listeyi gerektiği gibi güncelleştirirsiniz.

Not

Gerekli kaynağı veya bileşeni almak için bağlantı yöneticisi GetInstance'ı da kullanabilirsiniz.

Yönetilen Configuration Manager, site denetim dosyasına bağlantı oturumunu sizin için otomatik olarak yönetir. Bu nedenle, sorgudan döndürülen IResultObject nesnelerini, SMS Sağlayıcısından alınan IResultObject nesneleriyle aynı şekilde ele alırsınız.

Site denetim dosyasını okumak ve yazmak için

  1. SMS Sağlayıcısı ile bağlantı kurun. Daha fazla bilgi için bkz. Yönetilen Kod Kullanarak Configuration Manager bir SMS Sağlayıcısına Bağlanma.

  2. Gerekli site denetim dosyası kaynağını veya IResultObject nesnesini almak için Bağlantı Yöneticisi QueryProcessor nesnesini ExecQuery veya GetInstance yöntemini kullanın.

  3. IResultObject kullanarak site denetim dosyasını güncelleştirin.

  4. Değişiklikleri işlemek için IResultObject nesnesi Put yöntemini kullanın.

Örnek

Aşağıdaki C# örneği, site denetim dosyasının istemci aracısı bileşenine erişir ve sahte bir özellik, özellik listesi ve çok dizeli liste oluşturur. Ardından yapılan güncelleştirmeleri kaldırır. Örnek, site denetim dosyasını sorgulamayı, güncelleştirmeleri yapmayı ve site denetim dosyasında değişiklikleri işlemeyi gösterir.

Örnek kodu çağırma hakkında bilgi için bkz. Configuration Manager Kod Parçacıklarını Çağırma.

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

Örnek yöntem aşağıdaki parametrelere sahiptir:

Parametre Tür Açıklama
connection - WqlConnectionManager SMS Sağlayıcısına geçerli bir bağlantı.
siteCode - String Configuration Manager sitenin site kodu.

Kodu Derleme

Ad alanları

Sistem

System.Collections.Generic

Collections

System.ComponentModel

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Derleme

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Sağlam Programlama

Oluşturulabilecek Configuration Manager özel durumlar SmsConnectionException ve SmsQueryException'dır. Bunlar SmsException ile birlikte yakalanabilir.

Ayrıca Bkz

Configuration Manager Site Denetim Dosyası HakkındaSMS Sağlayıcısı temelleri
Yönetilen Kod Kullanarak Configuration Manager Sağlayıcısına Bağlanma
Configuration Manager Site Denetimi Dosyası Katıştırılmış Özellik Listesini Okuma
Nesnelere genel bakış