0

Need help on changing retention period of each backup policy in Recovery services vault .We have multiple vaults and many policies in each vault .Hence wanted to script the process.

Below is the script i used to get all policies in all vaults .But not able to change the retention period of each policy

$recoveryServicesVaults=Get-AzureRmRecoveryServicesVault
foreach($recoveryServicesVault in $recoveryServicesVaults)
{
 Set-AzureRmRecoveryServicesVaultContext -Vault $recoveryServicesVault
 $backupPolicies=Get-AzureRmRecoveryServicesBackupProtectionPolicy - 
 WarningAction Ignore
 $backupPolicyArray=@()
 foreach($backupPolicy in $backupPolicies)
 {
 $Info = New-Object PSObject -Property @{
 PolicyName=$backupPolicy.Name
 WorkloadType=$backupPolicy.WorkloadType
 DailyRetentionPolicyDuration=$backupPolicy.RetentionPolicy.dailyschedule.DurationCountInDays
  }
  $backupPolicyArray += $Info
  }
 $backupPolicyArray
   }
  • Is [this](https://learn.microsoft.com/et-EE/azure/sql-database/sql-database-long-term-backup-retention-configure-vault?toc=%2Fazure%2Fbackup%2Ftoc.json#powershell) documentation where you are looking for? – Jeroen Heier Jul 22 '18 at 09:00
  • Actually not because i am not sure if its for whole vault or for specifc backup policy. Am looking to change retention period for each policy(assume there are multiple policies per vault) in vault. – avinash mitta Jul 22 '18 at 09:08

1 Answers1

0

You need to create a retention policy first and then update the backup policy with new retention policy. Use Set-AzureRmRecoveryServicesBackupProtectionPolicy cmdlet to update policy. See below example to update policy. You can provide if you want to enable or disable daily, weekly, monthly or yearly schedule and also provide schedule duration for each type. It depends upon your requirements.

$recoveryServicesVaults = Get-AzureRmRecoveryServicesVault

foreach($recoveryServicesVault in $recoveryServicesVaults)

{

 Set-AzureRmRecoveryServicesVaultContext -Vault $recoveryServicesVault

 $backupPolicies=Get-AzureRmRecoveryServicesBackupProtectionPolicy -WarningAction Ignore

 foreach($backupPolicy in $backupPolicies)
 {
     $schPol = Get-AzureRmRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
     $retPol = Get-AzureRmRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"

     $retPol.IsWeeklyScheduleEnabled  = $true
     $retPol.IsMonthlyScheduleEnabled = $true
     $retPol.IsYearlyScheduleEnabled =  $true
     $retPol.DailySchedule.DurationCountInDays = 90
     $retpol.WeeklySchedule.DurationCountInWeeks = 10
     $retpol.MonthlySchedule.DurationCountInMonths = 4
     $retpol.YearlySchedule.DurationCountInYears = 1
     Set-AzureRmRecoveryServicesBackupProtectionPolicy -Policy $backupPolicy -SchedulePolicy $SchPol -RetentionPolicy $RetPol
  }

}