New-ProvMaintenanceCycle

Last published : Oct 31, 2026
Creates a new Maintenance Cycle

Syntax

New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeUid <Guid>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeUid <Guid>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeUid <Guid>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeUid <Guid>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeName <String>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeName <String>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeName <String>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvMaintenanceCycle
   -Operation <OperationType>
   [-MaintenanceCycleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeName <String>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]

Description

Schedules a maintenance cycle either for a provisioning scheme or for a list of vms as specified by the user. The cycle will be executed for the operation given during cmdlet execution and is meant to start at the time specified in ScheduledStartTimeInUTC. MaxDurationInMinutes indicates the maximum amount of time allocated for the maintenance cycle

Examples

Parameters

-Operation

Specifies the operation to be executed in a maintenance cycle
Type: OperationType
Accepted values: ImageUpdate, HardwareUpdate, ResetOSDisk, ResetIDDisk
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-VMName

An array of virtual machine names to which the maintenance cycle operation need to be executed
Type: String[]
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-ProvisioningSchemeUid

Indicates the Uid of the provisioningscheme
Type: Guid
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-ScheduledStartTimeInUTC

Indicates the time in UTC at which the maintenance cycle will be started This must be a date time powershell object and user is expected to supply it as a parameter to the cmdlet
Type: DateTime
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-ProvisioningSchemeName

Indicates the Name of the provisioningscheme
Type: String
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-StartsNow

Indicates that the maintenance cycle has to be started immediately
Type: SwitchParameter
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-AllVMs

Indicate that all virtual machines in the prov scheme has to be considered by the maintenance cycle
Type: SwitchParameter
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-MaintenanceCycleDescription

A brief overview to understand what the maintenance cycle is about
Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-MaxDurationInMinutes

Indicates the total allocated duration in minutes to the maintenance cycle
Type: Int32
Position: Named
Default value: 30
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-PurgeDBAfterInDays

The duration of time in days for mcs to have the data in database after maintenance cycles goes into completed states, once the time expires the data will be purged
Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-SessionWarningTimeInMinutes

Buffer Time provided to the user to save date before powering down the vm by mcs
Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-SessionWarningLogOffTitle

Short Heading for the message to be displayed to the user
Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-SessionWarningLogOffMessage

Brief Message intended to be displayed to the user before powering down the vm
Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-LoggingId

Specifies the identifier of the high-level operation this cmdlet call forms a part of. Citrix Studio and Director typically create high-level operations. PowerShell scripts can also wrap a series of cmdlet calls in a high-level operation by way of the Start-LogHighLevelOperation and Stop-LogHighLevelOperation cmdlets.
Type: Guid
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

CitrixCommonParameters

This cmdlet supports the common Citrix parameters: -AdminAddress, -AdminClientIP, -BearerToken, -TraceParent, -TraceState and -VirtualSiteId. For more information, see about_CitrixCommonParameters.

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

None

You can't pipe objects to this cmdlet.

Outputs

None

By default, this cmdlet returns no output.

Notes

The cmdlet can be used for the following valid operations 1. ResetOSDisk - Supported by default 2. ImageUpdate - Supported by default 3. HardwareUpdate -Supported by default 4. ResetIDDisk - Controlled by the Feature Toggle "McsMaintenanceCyclesResetIdentityDiskOperation". This feature toggle must be enabled to create maintenance cycles to perform Reset Identity Disk.
The cmdlet is associated to create a maintenance cycle for a respective operation provided by the user. It is expected for MCS to start the maintenance cycle at the scheduled time and process vms one by one to complete the said operation Error Codes ----------- MaintenanceCycleNotEnabled
MaintenanceCycle Feature Not Enabled
MaintenanceCycleOperationFailed
MaintenanceCycle Feature Operation has failed
MaintenanceCycleInvalidDateObject
MaintenanceCycle Feature Operation has failed due to invalid date object
MaintenanceCycleInputMissing
MaintenanceCycle Feature Operation has failed due to a missing input parameter
MaintenanceCyclePreflightCheckFailed
MaintenanceCycle Feature Operation has failed due to a failed pre flight check
MaintenanceCycleDatabaseCompatibilityIssue
MaintenanceCycle Feature Operation has failed due to a database compatibility issue