Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazás Configuration Manager karbantartási időszakot hozhat létre a SMS_CollectionSettings kiszolgálói WMI-osztály és SMS_ServiceWindow kiszolgálói WMI-osztály osztályainak és tulajdonságainak használatával.
Karbantartási időszak létrehozása
Állítson be egy kapcsolatot az SMS-szolgáltatóval. További információ: Az SMS-szolgáltató alapjai.
Kérje le a meglévő gyűjteménybeállítás-példányt a megadott gyűjteményazonosítóval.
Hozzon létre és töltse fel egy új szolgáltatásablak-objektum tulajdonságait a SMS_ServiceWindow kiszolgálói WMI-osztály osztály használatával.
Adja hozzá az új
SMS_ServiceWindow
objektumot a korábban beszerzett gyűjteménybeállítás-példányhoz.Mentse a gyűjteménybeállítások példányát és tulajdonságait.
Megjegyzés:
Az alábbi példa további lépéseket tartalmaz, elsősorban a karbantartási időszak objektumainak kezelésével kapcsolatos többletterhelés kezelésére, amelyek beágyazott objektumokként vannak tárolva a gyűjteménybeállítások példányában.
Példa
Az alábbi példametódus karbantartási időszakot hoz létre egy gyűjteményhez, feltéve, hogy a gyűjteménypéldány módosítható. Előfordulhat, hogy ez nem így van a gyermekhelyeken, ahol a gyűjtemények a szülőwebhely(ek) tulajdonában vannak.
A mintakód meghívásával kapcsolatos információkért lásd: Configuration Manager Kódrészletek hívása.
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;
}
}
A példametódus a következő paraméterekkel rendelkezik:
Paraméter | Típus | Leírás |
---|---|---|
connection swebemServices |
-Kezelt: WqlConnectionManager - VBScript: SWbemServices |
Érvényes kapcsolat az SMS-szolgáltatóval. |
targetCollectionID |
-Kezelt: String -Vbscript: String |
A gyűjtemény azonosítója. |
newMaintenanceWindowName |
-Kezelt: String -Vbscript: String |
Az új karbantartási időszak neve. |
newMaintenanceWindowDescription |
-Kezelt: String -Vbscript: String |
Az új karbantartási időszak leírása. |
newMaintenanceWindowServiceWindowSchedules |
-Kezelt: String -Vbscript: String |
Az új karbantartási időszak szolgáltatásütemezései. |
newMaintenanceWindowIsEnabled |
-Kezelt: Boolean -Vbscript: Boolean |
true ha az új karbantartási időszak engedélyezve van. |
newMaintenanceWindowServiceWindowType |
-Kezelt: Integer -Vbscript: Integer |
Írja be az új karbantartási időszakot. |
A kód fordítása
A C#-példához a következőre van szükség:
Névterek
Rendszer
System.Collections.Generic
System.ComponentModel
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Összeszerelés
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Robusztus programozás
A hibakezeléssel kapcsolatos további információkért lásd: A Configuration Manager hibák ismertetése.
.NET-keretrendszer Security
A Configuration Manager alkalmazások biztonságossá tételével kapcsolatos további információkért lásd: Configuration Manager szerepköralapú felügyelet.
Lásd még
Tudnivalók a karbantartási időszakokrólSzoftverterjesztés áttekintéseA központi telepítések áttekintéseObjektumok áttekintéseConfiguration Manager Providerhez való csatlakozás felügyelt kóddal
Csatlakozás Configuration Manager-szolgáltatóhoz WMI használatával
SMS_CollectionSettings kiszolgálói WMI-osztály
SMS_ServiceWindow kiszolgálói WMI-osztály
Az ütemezések ismertetéseÜtemezési token létrehozása