使用 PowerShell 備份已加密的 Azure 虛擬機器
此指令碼會針對已加密的 Azure 虛擬機器,建立具有異地備援儲存體 (GRS) 的復原服務保存庫。 預設保護原則會套用到保存庫。 此原則會產生虛擬機器的每日備份,並將每個備份保留 365 天。 此指令碼也會觸發虛擬機器的初始復原點,並將該復原點保留 30 天。
此範例需要 Azure PowerShell Az 1.0 或更新版本。 執行 Get-Module -ListAvailable Az
可查看已安裝的版本。
如果您需要安裝,請參閱安裝 Azure PowerShell 模組。
執行 Connect-AzAccount 來登入 Azure。
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
範例指令碼
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
# Edit these global variables with your unique Recovery Services Vault name, resource group name and location
$rsVaultName = "myRsVault"
$rgName = "myResourceGroup"
$location = "East US"
# Register the Recovery Services provider and create a resource group
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
New-AzResourceGroup -Location $location -Name $rgName
# Create a Recovery Services Vault and set its storage redundancy type
New-AzRecoveryServicesVault `
-Name $rsVaultName `
-ResourceGroupName $rgName `
-Location $location
$vault1 = Get-AzRecoveryServicesVault –Name $rsVaultName
Set-AzRecoveryServicesProperties `
-Vault $vault1 `
-BackupStorageRedundancy GeoRedundant
# Set Recovery Services Vault context and create protection policy
Get-AzRecoveryServicesVault -Name $rsVaultName | Set-AzRecoveryServicesVaultContext
$schPol = Get-AzRecoveryServicesSchedulePolicyObject -WorkloadType "AzureVM"
$retPol = Get-AzRecoveryServicesRetentionPolicyObject -WorkloadType "AzureVM"
New-AzRecoveryServicesProtectionPolicy `
-Name "NewPolicy" `
-WorkloadType "AzureVM" `
-RetentionPolicy $retPol `
-SchedulePolicy $schPol
# Provide permissions to Azure Backup to access key vault and enable backup on the VM
Set-AzKeyVaultAccessPolicy `
-VaultName "KeyVaultName" `
-ResourceGroupName "KyeVault-RGName" `
-PermissionsToKeys backup,get,list `
-PermissionsToSecrets backup,get,list `
-ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesProtectionPolicy -Name "NewPolicy" `
Enable-AzRecoveryServicesProtection `
-Policy $pol `
-Name "myVM" `
-ResourceGroupName "VM-RGName"
# Modify protection policy
$retPol = Get-AzRecoveryServicesRetentionPolicyObject -WorkloadType "AzureVM"
$retPol.DailySchedule.DurationCountInDays = 365
$pol = Get-AzRecoveryServicesProtectionPolicy -Name "NewPolicy"
Set-AzRecoveryServicesProtectionPolicy `
-Policy $pol `
-RetentionPolicy $RetPol
# Trigger a backup and monitor backup job
$namedContainer = Get-AzRecoveryServicesContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "myVM"
$item = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM"
$job = Backup-AzRecoveryServicesBackupItem -Item $item
$joblist = Get-AzRecoveryServicesJob -Status "InProgress"
Wait-AzRecoveryServicesJob `
-Job $joblist[0] `
-Timeout 43200
清除部署
執行下列命令來移除資源群組、VM 和所有相關資源。
Remove-AzResourceGroup -Name myResourceGroup
指令碼說明
此指令碼會使用下列命令來建立部署。 下表中的每個項目都會連結至命令特定的文件。
Command | 注意 |
---|---|
New-AzResourceGroup | 建立用來存放所有資源的資源群組。 |
New-AzRecoveryServicesVault | 建立復原服務保存庫來儲存備份。 |
Set-AzRecoveryServicesBackupProperty | 在復原服務保存庫上設定備份儲存體屬性。 |
New-AzRecoveryServicesBackupProtectionPolicy | 在復原服務保存庫中,使用排程原則和保留原則來建立保護原則。 |
Set-AzKeyVaultAccessPolicy | 在 Key Vault 上設定權限,以授與服務主體對加密金鑰的存取權。 |
Enable-AzRecoveryServicesBackupProtection | 使用指定的備份保護原則來啟用項目的備份。 |
Set-AzRecoveryServicesBackupProtectionPolicy | 修改現有的備份保護原則。 |
Backup-AzRecoveryServicesBackupItem | 針對未繫結到備份排程的受保護 Azure 備份項目,開始進行備份。 |
Wait-AzRecoveryServicesBackupJob | 等待 Azure 備份作業完成。 |
Remove-AzResourceGroup | 移除資源群組及其內含的所有資源。 |
下一步
如需有關 Azure PowerShell 模組的詳細資訊,請參閱 Azure PowerShell 文件。