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
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.
Verwenden Sie die Verbindungs-Manager QueryProcessor-ObjektExecQuery oder getInstance-Methode, um die erforderliche Websitesteuerelementdateiressource oder das Komponentenobjekt IResultObject abzurufen.
Aktualisieren Sie die Websitesteuerungsdatei mithilfe von IResultObject .
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