Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacja może utworzyć okno obsługi Configuration Manager przy użyciu klas i właściwości klasy WMI serwera SMS_CollectionSettings Server oraz klasy SMS_ServiceWindow Server WMI.
Aby utworzyć okno obsługi
Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.
Pobierz istniejące wystąpienie ustawień kolekcji przy użyciu podaneego identyfikatora kolekcji.
Utwórz i wypełnij właściwości nowego obiektu okna usługi przy użyciu klasy WMI serwera SMS_ServiceWindow .
Dodaj nowy
SMS_ServiceWindow
obiekt do wystąpienia ustawień kolekcji uzyskanego wcześniej.Zapisz wystąpienie i właściwości ustawień kolekcji.
Uwaga
Poniższy przykład zawiera dodatkowe kroki, głównie w celu obsługi narzutu związanego z obsługą obiektów okna obsługi, które są przechowywane jako obiekty osadzone w wystąpieniu ustawień kolekcji.
Przykład
Poniższa przykładowa metoda tworzy okno obsługi dla kolekcji przy założeniu, że wystąpienie kolekcji może być zmodyfikowane. Może tak nie być w witrynach podrzędnych, w których kolekcje są własnością lokacji nadrzędnych.
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.
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;
}
}
Przykładowa metoda ma następujące parametry:
Parametr | Wpisać | Opis |
---|---|---|
connection swebemServices |
-Zarządzane: WqlConnectionManager - VBScript: SWbemServices |
Prawidłowe połączenie z dostawcą programu SMS. |
targetCollectionID |
-Zarządzane: String -Vbscript: String |
Identyfikator kolekcji. |
newMaintenanceWindowName |
-Zarządzane: String -Vbscript: String |
Nazwa nowego okna obsługi. |
newMaintenanceWindowDescription |
-Zarządzane: String -Vbscript: String |
Opis nowego okna obsługi. |
newMaintenanceWindowServiceWindowSchedules |
-Zarządzane: String -Vbscript: String |
Usługa planuje nowe okno obsługi. |
newMaintenanceWindowIsEnabled |
-Zarządzane: Boolean -Vbscript: Boolean |
true jeśli nowe okno obsługi jest włączone. |
newMaintenanceWindowServiceWindowType |
-Zarządzane: Integer -Vbscript: Integer |
Wpisz dla nowego okna obsługi. |
Kompilowanie kodu
Przykład języka C# wymaga:
Obszary nazw
System
System.collections.generic
System.componentmodel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Zestawu
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Niezawodne programowanie
Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.
zabezpieczenia .NET Framework
Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.
Zobacz też
Informacje o konserwacji systemu WindowsOmówienie dystrybucji oprogramowaniaOmówienie obiektów wdrożeńJak nawiązać połączenie z dostawcą Configuration Manager przy użyciu kodu zarządzanego
Jak nawiązać połączenie z dostawcą Configuration Manager przy użyciu usługi WMI
SMS_CollectionSettings Server WMI Class
SMS_ServiceWindow Server WMI Class
Informacje o harmonogramachJak utworzyć token harmonogramu