New-ProvVMBackupSchedule

Last published : Oct 31, 2026
Creates a new virtual machines backup schedule

Syntax

New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeUid <Guid>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeUid <Guid>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeUid <Guid>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeUid <Guid>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeName <String>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeName <String>
   -ScheduledStartTimeInUTC <DateTime>
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   [-AllVMs]
   -ProvisioningSchemeName <String>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
New-ProvVMBackupSchedule
   [-MaxNumberOfBackups <Int32>]
   [-UserVisible <Boolean>]
   [-DoNotShutdownMachines]
   -ProvisioningScheduleName <String>
   -RecurringSchedule <String>
   [-ScheduleDescription <String>]
   -VMName <String[]>
   -ProvisioningSchemeName <String>
   [-StartsNow]
   [-MaxDurationInMinutes <Int32>]
   [-PurgeDBAfterInDays <Int32>]
   [-SessionWarningTimeInMinutes <Int32>]
   [-SessionWarningLogOffTitle <String>]
   [-SessionWarningLogOffMessage <String>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]

Description

Creates a new Schedule for Backing up virtual machines in a provisioning scheme via maintenance cycles

Examples

EXAMPLE 1

Creates backup schedule for all machines in provisioning starting in 15 minutes, 6AM every week day. Schedule will keep maximum of 3 backups.
$dateObj = (Get-Date).AddMinutes(15)
New-ProvVMBackupSchedule -ProvisioningScheduleName MySchedule -ProvisioningSchemeName MCSCatalog -AllVMs -ScheduledStartTimeInUTC $dateObj -UserVisible $false -MaxAllocatedDurationInMinutes 40 -SessionWarningInMinutes 5 -SessionWarningLogOffMessage "PLEASE SAVE SESSION BEFORE MACHINE IS TURNED OFF" -PurgeMaintenanceCycleInfoAfterInDays 1 -RecurringSchedule "0 6 * * 1-5" -ScheduleDescription "Backing Up VMs" -MaxNumberOfBackups 3

Parameters

-ProvisioningScheduleName

A Unique name provided for the provisioning schedule
Type: String
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-RecurringSchedule

Indicates how frequently the operation needs to be run. Specified in cron syntax.
Type: String
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

The Uid of the Provisioning scheme to be associated with the provisioning schedule
Type: Guid
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-ScheduledStartTimeInUTC

Indicates the start time for the provisioning schedule
Type: DateTime
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-ProvisioningSchemeName

The name of the Provisioning scheme to be associated with the provisioning schedule
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

-MaxNumberOfBackups

The maximum number of backups that can exist, per virtual machine as part of the provisioning schedule
Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-UserVisible

Sets whether the backups taken by this schedule are visible to users. Default value is true.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-DoNotShutdownMachines

Indicates if a backup will be taken on virtual machines without shutting them down first.
Type: SwitchParameter
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-ScheduleDescription

A brief overview of the provisioning schedule
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 provisioning schedule
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 wait before purging relevant info from the database upon completion
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 data 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 is expected to create a schedule which would inherently create new maintenance cycles at respective intervals to perform backup 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 preflight check
MaintenanceCycleDatabaseCompatibilityIssue
MaintenanceCycle Feature Operation has failed due to a database compatibility issue
Cron syntax for RecurringSchedule contains 5 elements:
  1. minute in the range 0-59.
  2. hour in the range 0-23
  3. day of month range 1-31
  4. month range 1-12
  5. day of week range 0-6 (0=Sunday to 6=Saturday)
With asterisk (*) meaning 'every'. For example: "* * * * *" would mean every minute of every hour of every day. Asterisk (*) is not allowed for minute, and discouraged for hour element. With minus (-) as range separator. For example 1-5 for day of week would mean Monday through Friday. eg: "0 6 * 1-5 *" would mean 6AM every Monday through Friday. With comma (,) as list separator. For example 1,15 for day of month would mean 1st and 15th of each month. eg: "0 6 1,15 * *" would mean 6AM on 1st and 15th of evety month.
For example:
  • Run every 12 hours (midnight and noon), 15 minutes pass the hour, every Mon, Wed, Fri: "15 0/12 * * 1,3,5"
  • Run every at 3:00am on 1st and 15th of every month: "0 3 1,15 * *"