Get-AzRecoveryServicesBackupRecoveryPoint
Gets the recovery points for a backed up item.
Syntax
Get-AzRecoveryServicesBackupRecoveryPoint
[-Item] <ItemBase>
[-UseSecondaryRegion]
[-Tier <RecoveryPointTier>]
[-IsReadyForMove <Boolean>]
[-TargetTier <RecoveryPointTier>]
[-VaultId <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Get-AzRecoveryServicesBackupRecoveryPoint
[[-StartDate] <DateTime>]
[[-EndDate] <DateTime>]
[-Item] <ItemBase>
[-UseSecondaryRegion]
[-Tier <RecoveryPointTier>]
[-IsReadyForMove <Boolean>]
[-TargetTier <RecoveryPointTier>]
[-VaultId <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Get-AzRecoveryServicesBackupRecoveryPoint
[-Item] <ItemBase>
[-RecoveryPointId] <String>
[[-KeyFileDownloadLocation] <String>]
[-UseSecondaryRegion]
[-VaultId <String>]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
The Get-AzRecoveryServicesBackupRecoveryPoint cmdlet gets the recovery points for a backed up Azure Backup item. After an item has been backed up, an AzureRmRecoveryServicesBackupRecoveryPoint object has one or more recovery points. Set the vault context by using the -VaultId parameter.
Examples
Example 1: Get recovery points from the last week for an item
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureVM -FriendlyName "V2VM" -VaultId $vault.ID
$backupItem = Get-AzRecoveryServicesBackupItem -Container $container -WorkloadType AzureVM -VaultId $vault.ID
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupItem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $vault.ID
The first command gets vault object based on vaultName. The second command gets the date from seven days ago, and then stores it in the $startDate variable. The third command gets today's date, and then stores it in the $endDate variable. The fourth command gets AzureVM backup containers, and stores them in the $Container variable. The fifth command gets the backup item based on workloadType, vaultId and then stores it in the $backupItem variable. The last command gets an array of recovery points for the item in $BackupItem, and then stores them in the $rp variable.
Example 2: Get recovery points which are ready to be moved to VaultArchive
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$startDate = (Get-Date).AddDays(-7).ToUniversalTime()
$endDate = (Get-Date).ToUniversalTime()
$item = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -VaultId $vault.ID
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -StartDate $startDate -EndDate $endDate -VaultId $vault.ID -Item $item[3] `
-IsReadyForMove $true -TargetTier VaultArchive
The first command gets vault object based on vaultName. The second command gets the date from seven days ago, and then stores it in the $startDate variable. The third command gets today's date, and then stores it in the $endDate variable. The fourth command gets backup items based on backupManagementType and workloadType, vaultId and then stores it in the $item variable. The last command gets an array of recovery points for the item in $backupItem which are ready to be moved to VaultArchive tier and then stores them in the $rp variable.
Example 3: Get recovery points in a particular tier
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$startDate = (Get-Date).AddDays(-7).ToUniversalTime()
$endDate = (Get-Date).ToUniversalTime()
$item = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -VaultId $vault.ID
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -StartDate $startDate -EndDate $endDate -VaultId $vault.ID -Item $item[3] `
-Tier VaultStandard
The first command gets vault object based on vaultName. The second command gets the date from seven days ago, and then stores it in the $startDate variable. The third command gets today's date, and then stores it in the $endDate variable. The fourth command gets backup items based on backupManagementType and workloadType, vaultId and then stores it in the $item variable. The last command gets an array of recovery points for the item in $backupItem which are ready to be moved to VaultArchive tier and then stores them in the $rp variable.
Example 4: Getting pruned recovery points in last year after modify policy opertaion
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$startDate = (Get-Date).AddDays(-365).ToUniversalTime()
$endDate = (Get-Date).ToUniversalTime()
$item = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -VaultId $vault.ID
$rpsBefore = Get-AzRecoveryServicesBackupRecoveryPoint -Item $item[0] -StartDate $startDate -EndDate $endDate -VaultId $vault.ID
# update policy
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -VaultId $vault.ID -Name "policyName"
$pol.RetentionPolicy.IsWeeklyScheduleEnabled = $false
$pol.RetentionPolicy.IsMonthlyScheduleEnabled = $false
$pol.RetentionPolicy.IsYearlyScheduleEnabled = $false
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol -VaultId $vault.ID -RetentionPolicy $pol.RetentionPolicy -Debug
# wait until policy changes are applied to recovery points and they are pruned
$rpsAfter = Get-AzRecoveryServicesBackupRecoveryPoint -Item $item[0] -StartDate $startDate -EndDate $endDate -VaultId $vault.ID
# compare the recovery points list before and after
$diff = Compare-Object $rpsBefore $rpsAfter
$rpsRemoved = $diff | Where-Object{ $_.SideIndicator -eq'<='} | Select-Object -ExpandProperty InputObject
$rpsRemoved
RecoveryPointId RecoveryPointType RecoveryPointTime ContainerName ContainerType
--------------- ----------------- ----------------- ------------- -------------
7397781054902 CrashConsistent 5/2/2023 3:28:35 AM iaasvmcontainerv2;test-rg;test-vm AzureVM
9722704411921 CrashConsistent 4/1/2023 3:32:26 AM iaasvmcontainerv2;test-rg;test-vm AzureVM
6543100104464 CrashConsistent 3/1/2023 3:26:27 AM iaasvmcontainerv2;test-rg;test-vm AzureVM
The first command gets vault object based on vaultName. The second command gets the date from one year days ago, and then stores it in the $startDate variable. The third command gets today's date, and then stores it in the $endDate variable. The fourth command gets backup items based on backupManagementType and workloadType, vaultId and then stores it in the $item variable. The fifth command gets an array of recovery points for the item in $item which are present before the modify policy operation in last one year. Now we move on to update the policy. The sixth command fetches the policy to be updated which is used to protect the backup item $item[0]. The seventh, eight and ninth commands disable the yearly and monthly retention in the policy to prune the older recovery points. The tenth command finally updates the retention policy. The eleventh command waits in the same powershell session until the recovery points are pruned and fetches the recovery points within the same time range, after the policy changes are applied. The twelth command takes a diff between recovery point list before and after pruning occurs. The thirteenth command read the recovery points, from the diff, which were present before and are now pruned. The last command displays the list of pruned recovery points.
Parameters
-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 |
-EndDate
Specifies the end of the date range.
Type: | Nullable<T>[DateTime] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IsReadyForMove
Filters the Recovery Points based on whether RP is Ready to move to target tier. Use this along with target tier parameter.
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Item
Specifies the item for which this cmdlet gets recovery points. To obtain an AzureRmRecoveryServicesBackupItem object, use the Get-AzRecoveryServicesBackupItem cmdlet.
Type: | ItemBase |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-KeyFileDownloadLocation
Specifies the location to download the input file to restore the KeyVault key for an encrypted virtual machine.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RecoveryPointId
Specifies the recovery point ID.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StartDate
Specifies the start of the date range.
Type: | Nullable<T>[DateTime] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetTier
Target tier to check move readiness of recovery point. Currently only valid value is 'VaultArchive'.
Type: | RecoveryPointTier |
Accepted values: | VaultArchive |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tier
Filter recovery points based on tier value.
Type: | RecoveryPointTier |
Accepted values: | VaultStandard, Snapshot, VaultArchive, VaultStandardRehydrated, SnapshotAndVaultStandard, SnapshotAndVaultArchive |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseSecondaryRegion
Filters from Secondary Region for Cross Region Restore
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VaultId
ARM ID of the Recovery Services Vault.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Inputs
Outputs
Related Links
Azure PowerShell