Čtení a zápis do řídicího souboru webu Configuration Manager pomocí spravovaného kódu
Pokud chcete zapisovat do řídicího souboru Configuration Manager lokality pomocí spravovaného poskytovatele serveru SMS, získáte definiční soubor lokality dotazem na požadovaný prostředek nebo komponentu. Potom podle potřeby aktualizujete vloženou vlastnost, seznam vložených vlastností nebo seznam více řetězců.
Poznámka
K získání požadovaného prostředku nebo komponenty můžete také použít správce připojení GetInstance .
Spravovaná Configuration Manager automaticky spravuje relaci připojení k řídicímu souboru lokality za vás. Proto nakládáte s objekty IResultObject vrácené z dotazu stejným způsobem jako s objekty IResultObject načtené od poskytovatele serveru SMS.
Čtení a zápis do řídicího souboru webu
Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Připojení k poskytovateli serveru SMS v Configuration Manager pomocí spravovaného kódu.
Pomocí metody Správce připojení QueryProcessor QueryProcessorExecQuery nebo GetInstance získejte požadovaný prostředek souboru ovládacího prvku webu nebo objekt komponenty IResultObject.
Pomocí objektu IResultObject aktualizujte soubor ovládacího prvku lokality.
Použití IResultObject objekt Put metodu potvrdit změny.
Příklad
Následující příklad jazyka C# přistupuje ke komponentě agenta klienta řídicího souboru lokality a vytvoří fiktivní vlastnost, seznam vlastností a seznam více řetězců. Potom odebere provedené aktualizace. Příklad ukazuje, jak dotazovat řídicí soubor webu, provést aktualizace a potvrdit změny v souboru ovládacího prvku lokality.
Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.
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;
}
}
Ukázková metoda má následující parametry:
Parametr | Typ | Popis |
---|---|---|
connection |
- WqlConnectionManager |
Platné připojení k poskytovateli serveru SMS. |
siteCode |
- String |
Kód lokality pro Configuration Manager lokalitu. |
Kompilace kódu
Obory názvů
Systému
System.collections.generic
System.collections
System.componentmodel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Sestavení
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robustní programování
Výjimky Configuration Manager, které mohou být vyvolány, jsou SmsConnectionException a SmsQueryException. Ty se dají zachytit společně s postupem SmsException.
Viz taky
Základy poskytovatele serveru SMSO řídicím souboru webu Configuration Manager
Připojení ke poskytovateli Configuration Manager pomocí spravovaného kódu
Čtení seznamu vložených vlastností souboru ovládacího prvku webu Configuration Manager
Přehled objektů