Citrix Daas SDK

New-ProvVMBackupSchedule

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>]
<!--NeedCopy-->
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>]
<!--NeedCopy-->
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>]
<!--NeedCopy-->
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>]
<!--NeedCopy-->
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>]
<!--NeedCopy-->
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>]
<!--NeedCopy-->
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>]
<!--NeedCopy-->
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>]
<!--NeedCopy-->

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
<!--NeedCopy-->

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 * *”
New-ProvVMBackupSchedule