Get-AzRecoveryServicesBackupSchedulePolicyObject

Gets a base schedule policy object.

Syntax

Get-AzRecoveryServicesBackupSchedulePolicyObject
   [-WorkloadType] <WorkloadType>
   [[-BackupManagementType] <BackupManagementType>]
   [-DefaultProfile <IAzureContextContainer>]
   [[-ScheduleRunFrequency] <ScheduleRunType>]
   [[-PolicySubType] <PSPolicyType>]
   [<CommonParameters>]

Description

The Get-AzRecoveryServicesBackupSchedulePolicyObject cmdlet gets a base AzureRMRecoveryServicesSchedulePolicyObject. This object is not persisted in the system. It is temporary object that you can manipulate and use with the New-AzRecoveryServicesBackupProtectionPolicy cmdlet to create a new backup protection policy.

Examples

Example 1: Set the schedule frequency to weekly

$RetPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM" 
$SchPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM" 
$SchPol.ScheduleRunFrequency = "Weekly"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -WorkloadType AzureVM -RetentionPolicy $RetPol -SchedulePolicy $SchPol

The first command gets the retention policy object, and then stores it in the $RetPol variable. The second command gets the schedule policy object, and then stores it in the $SchPol variable. The third command changes the frequency for the schedule policy to weekly. The last command creates a backup protection policy with the updated schedule.

Example 2: Set the backup time

$SchPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM" 
$SchPol.ScheduleRunTimes.RemoveAll()
$DT = Get-Date
$SchPol.ScheduleRunTimes.Add($DT.ToUniversalTime())
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -WorkloadType AzureVM -RetentionPolicy $RetPol -SchedulePolicy $SchPol

The first command gets the schedule policy object, and then stores it in the $SchPol variable. The second command removes all scheduled run times from $SchPol. The third command gets the current date and time, and then stores it in the $DT variable. The fourth command replaces the scheduled run times with the current time. You can only backup AzureVM once per day, so to reset the backup time you must replace the original schedule. The last command creates a backup protection policy using the new schedule.

Example 3: Get hourly schedule for fileshare policy

$schedulePolicy = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly
$timeZone = Get-TimeZone
$schedulePolicy.ScheduleRunTimeZone = $timeZone.Id
$startTime = Get-Date -Date "2021-12-22T06:00:00.00+00:00"
$schedulePolicy.ScheduleWindowStartTime = $startTime.ToUniversalTime()
$schedulePolicy.ScheduleInterval = 6
$schedulePolicy.ScheduleWindowDuration = 14

The first command gets a base hourly SchedulePolicyObject, and then stores it in the $schedulePolicy variable. The second and third command fetches the timezone and updates the timezone in the $schedulePolicy. The fourth and fifth command initializes the schedule window start time and updates the $schedulePolicy. Please note the start time must be in UTC even if the timezone is not UTC. The sixth and seventh command updates the interval (in hours) after which the backup will be retriggered on the same day, duration (in hours) for which the schedule will run.

Example 4: Get enhanced hourly schedule for AzureVM policy

$schedulePolicy = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType AzureVM -BackupManagementType AzureVM -PolicySubType Enhanced -ScheduleRunFrequency Hourly
$timeZone = Get-TimeZone -ListAvailable | Where-Object { $_.Id -match "India" }
$schedulePolicy.ScheduleRunTimeZone = $timeZone.Id
$windowStartTime = (Get-Date -Date "2022-04-14T08:00:00.00+00:00").ToUniversalTime()
$schPol.HourlySchedule.WindowStartTime = $windowStartTime
$schedulePolicy.HourlySchedule.ScheduleInterval = 4
$schedulePolicy.HourlySchedule.ScheduleWindowDuration = 23

The first command gets a base enhanced hourly SchedulePolicyObject for WorkloadType AzureVM, and then stores it in the $schedulePolicy variable. The second and third command fetches the India timezone and updates the timezone in the $schedulePolicy. The fourth and fifth command initializes the schedule window start time and updates the $schedulePolicy. Please note that the start time must be in UTC even if the timezone is not UTC. The sixth and seventh command updates the interval (in hours) after which the backup will be retriggered on the same day, duration (in hours) for which the schedule will run.

Parameters

-BackupManagementType

The class of resources being protected. The acceptable values for this parameter are:

  • AzureVM
  • AzureStorage
  • AzureWorkload
Type:Nullable<T>[BackupManagementType]
Accepted values:AzureVM, AzureStorage, AzureWorkload
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

The credentials, account, tenant, and subscription used for communication with azure.

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PolicySubType

Type of schedule policy to be fetched: Standard, Enhanced

Type:PSPolicyType
Accepted values:Standard, Enhanced
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScheduleRunFrequency

Schedule run frequency for the policy schedule.

Type:ScheduleRunType
Accepted values:Daily, Hourly, Weekly
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WorkloadType

Workload type of the resource. The acceptable values for this parameter are:

  • AzureVM
  • AzureFiles
  • MSSQL
Type:WorkloadType
Accepted values:AzureVM, AzureFiles, MSSQL
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Inputs

None

Outputs

SchedulePolicyBase