A 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
Á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.
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.
Az IResultObject használatával frissítse a helyvezérlő fájlt.
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öbb sztringlistá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
Az SMS-szolgáltató alapjaiA Configuration Manager helyvezérlő fájl
Csatlakozás Configuration Manager-szolgáltatóhoz felügyelt kód használatával
Configuration Manager webhelyvezérlő fájl beágyazott tulajdonságlistájának olvasása
Objektumok áttekintése