Läsa och skriva till Configuration Manager platskontrollfil med hjälp av hanterad kod
Om du vill skriva till Configuration Manager platskontrollfil med hjälp av den hanterade SMS-providern hämtar du webbplatsdefinitionsfilen genom att fråga efter den nödvändiga resursen eller komponenten. Du uppdaterar sedan den inbäddade egenskapen, listan över inbäddade egenskaper eller listan med flera strängar efter behov.
Obs!
Du kan också använda Anslutningshanteraren GetInstance för att hämta den resurs eller komponent som krävs.
Den hanterade Configuration Manager hanterar anslutningssessionen till platskontrollfilen automatiskt åt dig. Därför behandlar du de IResultObject-objekt som returneras från frågan på samma sätt som du behandlar IResultObject-objekt som hämtats från SMS-providern.
Läsa och skriva till platskontrollfilen
Konfigurera en anslutning till SMS-providern. Mer information finns i Så här ansluter du till en SMS-provider i Configuration Manager med hjälp av hanterad kod.
Använd metoden Anslutningshanteraren QueryProcessor-objektetExecQuery eller GetInstance för att hämta den nödvändiga platskontrollfilresursen eller komponenten IResultObject-objektet.
Uppdatera platskontrollfilen med hjälp av IResultObject .
Använd metoden IResultObject object Put för att checka in ändringarna.
Exempel
I följande C#-exempel får du åtkomst till klientagentkomponenten i platskontrollfilen och skapar en dummy-egenskap, egenskapslista och lista med flera strängar. Den tar sedan bort de uppdateringar som har gjorts. Exemplet visar hur du frågar platskontrollfilen, gör uppdateringar och genomför ändringar i platskontrollfilen.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
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;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
connection |
- WqlConnectionManager |
En giltig anslutning till SMS-providern. |
siteCode |
- String |
Platskoden för den Configuration Manager platsen. |
Kompilera koden
Namnområden
System
System.Collections.Generic
System.Collections
System.ComponentModel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församlingen
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robust programmering
De Configuration Manager undantag som kan aktiveras är SmsConnectionException och SmsQueryException. Dessa kan fångas tillsammans med SmsException.
Se även
Grunderna i SMS-providernom Configuration Manager-platskontrollfilen
Ansluta till en Configuration Manager-provider med hanterad kod
Så här läser du en Configuration Manager webbplatskontrollfil inbäddad egenskapslista
Översikt över objekt