Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace může vytvořit Configuration Manager časové období údržby pomocí třídy a vlastností služby WMI SMS_CollectionSettings Server a SMS_ServiceWindow serverové třídy služby WMI.
Vytvoření časového období údržby
Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Základy poskytovatele serveru SMS.
Získejte existující instanci nastavení kolekce pomocí zadaného ID kolekce.
Vytvořte a naplňte vlastnosti nového objektu okna služby pomocí třídy služby WMI SMS_ServiceWindow Server .
Přidejte nový
SMS_ServiceWindow
objekt do instance nastavení kolekce získané dříve.Uložte instanci a vlastnosti nastavení kolekce.
Poznámka
Následující příklad obsahuje další kroky, které primárně řeší režijní náklady na zpracování objektů časového období údržby, které jsou uložené jako vložené objekty v instanci nastavení kolekce.
Příklad
Následující příklad metoda vytvoří časové období údržby pro kolekci za předpokladu, že instance kolekce může změnit. To nemusí být případ podřízených webů, kde kolekce vlastní nadřazené weby.
Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.
Sub CreateMaintenanceWindow(connection, _
targetCollectionID, _
newMaintenanceWindowName, _
newMaintenanceWindowDescription, _
newMaintenanceWindowServiceWindowSchedules, _
newMaintenanceWindowIsEnabled, _
newMaintenanceWindowServiceWindowType)
' Build a query to get the specified collection.
collectionSettingsQuery = "SMS_CollectionSettings.CollectionID='" & targetCollectionID & "'"
' Get the collection settings instance for the targetCollectionID.
Set allCollectionSettings = connection.ExecQuery("Select * From SMS_CollectionSettings Where CollectionID = '" & targetCollectionID & "'")
' If a collection settings instance does not exist for the target collection, create one.
If allCollectionSettings.Count = 0 Then
Wscript.Echo "Creating collection settings instance."
Set collectionSettingsInstance = connection.Get("SMS_CollectionSettings").SpawnInstance_
collectionSettingsInstance.CollectionID = targetCollectionID
collectionSettingsInstance.Put_
End If
' Get the specific collection settings instance.
Set collectionSettingsInstance = connection.Get("SMS_CollectionSettings.CollectionID='" & targetCollectionID &"'" )
' Create and populate a temporary SMS_ServiceWindow object with the new maintenance window values.
Set tempServiceWindowObject = connection.Get("SMS_ServiceWindow").SpawnInstance_
' Populate temporary SMS_ServiceWindow object with the new maintenance window values.
tempServiceWindowObject.Name = newMaintenanceWindowName
tempServiceWindowObject.Description = newMaintenanceWindowDescription
tempServiceWindowObject.ServiceWindowSchedules = newMaintenanceWindowServiceWindowSchedules
tempServiceWindowObject.IsEnabled = newMaintenanceWindowIsEnabled
tempServiceWindowObject.ServiceWindowType = newMaintenanceWindowServiceWindowType
' Populate the local array list with the existing service window objects (from the target collection).
tempServiceWindowArray = collectionSettingsInstance.ServiceWindows
' Add the newly created service window object to the temporary array.
ReDim Preserve tempServiceWindowArray (Ubound(tempServiceWindowArray) + 1)
Set tempServiceWindowArray(Ubound(tempServiceWindowArray)) = tempServiceWindowObject
' Replace the existing service window objects from the target collection with the temporary array that includes the new service window.
collectionSettingsInstance.ServiceWindows = tempServiceWindowArray
' Save the collection settings instance with the new service window object.
collectionSettingsInstance.Put_
' Output success message.
wscript.echo "New Maintenance Window created."
End Sub
public void CreateMaintenanceWindow(WqlConnectionManager connection,
string targetCollectionID,
string newMaintenanceWindowName,
string newMaintenanceWindowDescription,
string newMaintenanceWindowServiceWindowSchedules,
bool newMaintenanceWindowIsEnabled,
int newMaintenanceWindowServiceWindowType)
{
try
{
// Create an object to hold the collection settings instance (used to check whether a collection settings instance exists).
IResultObject collectionSettingsInstance = null;
// Get the collection settings instance for the targetCollectionID.
IResultObject allCollectionSettings = connection.QueryProcessor.ExecuteQuery("Select * from SMS_CollectionSettings where CollectionID='" + targetCollectionID + "'");
// Enumerate the allCollectionSettings collection (there should be just one item) and save the instance.
foreach (IResultObject collectionSetting in allCollectionSettings)
{
collectionSettingsInstance = collectionSetting;
}
// If a collection settings instance does not exist for the target collection, create one.
if (collectionSettingsInstance == null)
{
collectionSettingsInstance = connection.CreateInstance("SMS_CollectionSettings");
collectionSettingsInstance["CollectionID"].StringValue = targetCollectionID;
collectionSettingsInstance.Put();
collectionSettingsInstance.Get();
}
// Create a new array list to hold the service window object.
List<IResultObject> tempServiceWindowArray = new List<IResultObject>();
// Create and populate a temporary SMS_ServiceWindow object with the new maintenance window values.
IResultObject tempServiceWindowObject = connection.CreateEmbeddedObjectInstance("SMS_ServiceWindow");
// Populate temporary SMS_ServiceWindow object with the new maintenance window values.
tempServiceWindowObject["Name"].StringValue = newMaintenanceWindowName;
tempServiceWindowObject["Description"].StringValue = newMaintenanceWindowDescription;
tempServiceWindowObject["ServiceWindowSchedules"].StringValue = newMaintenanceWindowServiceWindowSchedules;
tempServiceWindowObject["IsEnabled"].BooleanValue = newMaintenanceWindowIsEnabled;
tempServiceWindowObject["ServiceWindowType"].IntegerValue = newMaintenanceWindowServiceWindowType;
// Populate the local array list with the existing service window objects (from the target collection).
tempServiceWindowArray = collectionSettingsInstance.GetArrayItems("ServiceWindows");
// Add the newly created service window object to the local array list.
tempServiceWindowArray.Add(tempServiceWindowObject);
// Replace the existing service window objects from the target collection with the temporary array that includes the new service window.
collectionSettingsInstance.SetArrayItems("ServiceWindows", tempServiceWindowArray);
// Save the new values in the collection settings instance associated with the target collection.
collectionSettingsInstance.Put();
}
catch (SmsException ex)
{
Console.WriteLine("Failed. Error: " + ex.InnerException.Message);
throw;
}
}
Ukázková metoda má následující parametry:
Parametr | Typ | Popis |
---|---|---|
connection swebemServices |
-Spravované: WqlConnectionManager - VBScript: SWbemServices |
Platné připojení k poskytovateli serveru SMS. |
targetCollectionID |
-Spravované: String -Vbscript: String |
ID kolekce. |
newMaintenanceWindowName |
-Spravované: String -Vbscript: String |
Název nového časového období údržby. |
newMaintenanceWindowDescription |
-Spravované: String -Vbscript: String |
Popis nového časového období údržby. |
newMaintenanceWindowServiceWindowSchedules |
-Spravované: String -Vbscript: String |
Služba plánuje nové časové období údržby. |
newMaintenanceWindowIsEnabled |
-Spravované: Boolean -Vbscript: Boolean |
true pokud je nové časové období údržby povolené. |
newMaintenanceWindowServiceWindowType |
-Spravované: Integer -Vbscript: Integer |
Zadejte nové časové období údržby. |
Kompilace kódu
Příklad jazyka C# vyžaduje:
Obory názvů
Systému
System.collections.generic
System.componentmodel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Sestavení
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Robustní programování
Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.
Zabezpečení rozhraní .NET Framework
Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.
Viz taky
Informace o časových obdobích údržbyPřehled distribuce softwaruPřehled nasazeníObjektůJak se připojit k poskytovateli Configuration Manager pomocí spravovaného kódu
Připojení k poskytovateli Configuration Manager pomocí rozhraní WMI
Serverová třída služby WMI SMS_CollectionSettings
Serverová třída služby WMI SMS_ServiceWindow
Informace o plánechVytvoření tokenu plánu