PowerShell を使用して Azure VM をバックアップおよび復元するBack up and restore Azure VMs with PowerShell

この記事では、PowerShell コマンドレットを使用して Azure Backup Recovery Services コンテナーの Azure VM をバックアップおよび復元する方法を説明します。This article explains how to back up and restore an Azure VM in an Azure Backup Recovery Services vault using PowerShell cmdlets.

この記事では、次の方法について説明します。In this article you learn how to:

  • Recovery Services のコンテナーを作成し、コンテナーのコンテキストを設定する。Create a Recovery Services vault and set the vault context.
  • バックアップ ポリシーを定義するDefine a backup policy
  • 複数の仮想マシンを保護するバックアップ ポリシーを適用するApply the backup policy to protect multiple virtual machines
  • 保護された仮想マシン用のオンデマンドのバックアップ ジョブをトリガーする 仮想マシンをバックアップ (または保護) する前に、前提条件をすべて満たして、VM を保護するための環境を準備する必要があります。Trigger an on-demand backup job for the protected virtual machines Before you can back up (or protect) a virtual machine, you must complete the prerequisites to prepare your environment for protecting your VMs.

開始する前にBefore you start

  • Recovery Services コンテナーについての詳細情報を確認します。Learn more about Recovery Services vaults.
  • Azure VM バックアップのアーキテクチャを確認して、バックアップ プロセスについて学び、サポート、制限、および前提条件を確認します。Review the architecture for Azure VM backup, learn about the backup process, and review support, limitations, and prerequisites.
  • Recovery Services の PowerShell オブジェクト階層を確認します。Review the PowerShell object hierarchy for Recovery Services.

Recovery Services オブジェクトの階層Recovery Services object hierarchy

オブジェクト階層の概要を次の図に示します。The object hierarchy is summarized in the following diagram.

Recovery Services オブジェクトの階層

Azure ライブラリに含まれる Az.RecoveryServices コマンドレット リファレンスのリファレンスを確認します。Review the Az.RecoveryServices cmdlet reference reference in the Azure library.

設定して登録するSet up and register

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

開始するにはTo begin:

  1. 最新バージョンの PowerShell をダウンロードしますDownload the latest version of PowerShell

  2. 以下のコマンドを入力して、使用可能な Azure Backup の PowerShell コマンドレットを検索します。Find the Azure Backup PowerShell cmdlets available by typing the following command:

    Get-Command *azrecoveryservices*
    

    Azure Backup、Azure Site Recovery、Recovery Services コンテナーのエイリアスとコマンドレットが表示されます。The aliases and cmdlets for Azure Backup, Azure Site Recovery, and the Recovery Services vault appear. 次の画像は表示例です。The following image is an example of what you'll see. コマンドレットの完全な一覧ではありません。It is not the complete list of cmdlets.

    Recovery Services の一覧

  3. Connect-AzAccount を使用して Azure アカウントにサインインします。Sign in to your Azure account using Connect-AzAccount. このコマンドレットを実行すると、アカウントの資格情報を入力する Web ページが表示されます。This cmdlet brings up a web page prompts you for your account credentials:

    • または、 -Credential パラメーターを使用して、Connect-AzAccount コマンドレットのパラメーターとしてアカウントの資格情報を含められます。Alternately, you can include your account credentials as a parameter in the Connect-AzAccount cmdlet, using the -Credential parameter.
    • CSP パートナーがテナントの代理としてサインインする場合は、その顧客をテナントとして指定します。該当するテナント ID またはテナントのプライマリ ドメイン名で指定してください。If you are CSP partner working on behalf of a tenant, specify the customer as a tenant, by using their tenantID or tenant primary domain name. 例: Connect-AzAccount -Tenant "fabrikam.com"For example: Connect-AzAccount -Tenant "fabrikam.com"
  4. 1 つのアカウントが複数のサブスクリプションを持つことができるため、使用するサブスクリプションをアカウントに関連付けます。Associate the subscription you want to use with the account, since an account can have several subscriptions:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  5. Azure Backup を初めて使用する場合、 Register-AzResourceProvider コマンドレットを使って Azure Recovery Services プロバイダーをサブスクリプションに登録する必要があります。If you are using Azure Backup for the first time, you must use the Register-AzResourceProvider cmdlet to register the Azure Recovery Service provider with your subscription.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  6. 次のコマンドを使用して、プロバイダーが正しく登録されたことを確認できます。You can verify that the Providers registered successfully, using the following commands:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    

    コマンドの出力では、RegistrationStateRegistered に変更されるはずです。In the command output, the RegistrationState should change to Registered. そうでない場合は、 Register-AzResourceProvider コマンドレットをもう一度実行してください。If not, just run the Register-AzResourceProvider cmdlet again.

Recovery Services コンテナーを作成するCreate a Recovery Services vault

次の手順では、Recovery Services コンテナーの作成について説明します。The following steps lead you through creating a Recovery Services vault. Recovery Services コンテナーは Backup コンテナーとは異なります。A Recovery Services vault is different than a Backup vault.

  1. Recovery Services コンテナーは Resource Manager リソースであるため、リソース グループ内に配置する必要があります。The Recovery Services vault is a Resource Manager resource, so you need to place it within a resource group. 既存のリソース グループを使用することも、 New-AzResourceGroup コマンドレットを使ってリソース グループを作成することもできます。You can use an existing resource group, or create a resource group with the New-AzResourceGroup cmdlet. 新しいリソース グループを作成するときは、リソース グループの名前と場所を指定します。When creating a resource group, specify the name and location for the resource group.

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. New-AzRecoveryServicesVault コマンドレットを使用して Recovery Services コンテナーを作成します。Use the New-AzRecoveryServicesVault cmdlet to create the Recovery Services vault. リソース グループに使用したのと同じコンテナーの場所を指定してください。Be sure to specify the same location for the vault as was used for the resource group.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    
  3. 使用するストレージ冗長性の種類を指定します。ローカル冗長ストレージ (LRS) または geo 冗長ストレージ (GRS) を使用できます。Specify the type of storage redundancy to use; you can use Locally Redundant Storage (LRS) or Geo Redundant Storage (GRS). 次に示す例では、testvault の -BackupStorageRedundancy オプションが GeoRedundant に設定されています。The following example shows the -BackupStorageRedundancy option for testvault is set to GeoRedundant.

    $vault1 = Get-AzRecoveryServicesVault -Name "testvault"
    Set-AzRecoveryServicesBackupProperty  -Vault $vault1 -BackupStorageRedundancy GeoRedundant
    

    ヒント

    Azure Backup コマンドレットの多くは、入力として Recovery Services コンテナー オブジェクトを必要としています。Many Azure Backup cmdlets require the Recovery Services vault object as an input. このため、Backup Recovery Services コンテナー オブジェクトを変数に格納すると便利です。For this reason, it is convenient to store the Backup Recovery Services vault object in a variable.

サブスクリプション内のコンテナーの表示View the vaults in a subscription

サブスクリプション内のコンテナーをすべて表示するには、Get-AzRecoveryServicesVault を使用します。To view all vaults in the subscription, use Get-AzRecoveryServicesVault:

Get-AzRecoveryServicesVault

出力は次のサンプルのようなものになります。関連する ResourceGroupName と Location が指定されていることに注目してください。The output is similar to the following example, notice the associated ResourceGroupName and Location are provided.

Name              : Contoso-vault
ID                : /subscriptions/1234
Type              : Microsoft.RecoveryServices/vaults
Location          : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId    : 1234-567f-8910-abc
Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties

Azure VM のバックアップBack up Azure VMs

Recovery Services コンテナーを使用して仮想マシンを保護します。Use a Recovery Services vault to protect your virtual machines. 保護を適用する前に、資格情報コンテナーのコンテキスト (資格情報コンテナーで保護されているデータの種類) を設定し、保護ポリシーを確認します。Before you apply the protection, set the vault context (the type of data protected in the vault), and verify the protection policy. 保護ポリシーは、バックアップ ジョブが実行される時間と各バックアップ スナップショットの保持期間を設定するスケジュールです。The protection policy is the schedule when the backup jobs run, and how long each backup snapshot is retained.

コンテナーのコンテキストの設定Set vault context

VM 上の保護を有効にする前に、Set-AzRecoveryServicesVaultContext を使用してコンテナーのコンテキストを設定します。Before enabling protection on a VM, use Set-AzRecoveryServicesVaultContext to set the vault context. コンテナーのコンテキストを設定すると、後続のすべてのコマンドレットに適用されます。Once the vault context is set, it applies to all subsequent cmdlets. 次の例は、コンテナー testvault のコンテナーのコンテキストを設定します。The following example sets the vault context for the vault, testvault.

Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext

ストレージ レプリケーションの設定を変更するModifying storage replication settings

LRS/GRS に対するコンテナーのストレージ レプリケーションの構成を設定するには、Set-AzRecoveryServicesBackupProperty コマンドを使用します。Use Set-AzRecoveryServicesBackupProperty command to set the Storage replication configuration of the vault to LRS/GRS

$vault= Get-AzRecoveryServicesVault -name "testvault"
Set-AzRecoveryServicesBackupProperty -Vault $vault -BackupStorageRedundancy GeoRedundant/LocallyRedundant

注意

記憶域冗長は、コンテナーに保護されているバックアップ項目がない場合にのみ変更できます。Storage Redundancy can be modified only if there are no backup items protected to the vault.

保護ポリシーの作成Create a protection policy

Recovery Services コンテナーの作成時に、既定の保護およびアイテム保持ポリシーも付属しています。When you create a Recovery Services vault, it comes with default protection and retention policies. 既定の保護ポリシーは、毎日指定した時刻にバックアップ ジョブをトリガーします。The default protection policy triggers a backup job each day at a specified time. 既定のアイテム保持ポリシーは、毎日の復旧ポイントを 30 日間保持します。The default retention policy retains the daily recovery point for 30 days. 既定のポリシーを使用すると、VM を迅速に保護することができ、後で異なる詳細な内容にポリシーを編集することもできます。You can use the default policy to quickly protect your VM and edit the policy later with different details.

Get-AzRecoveryServicesBackupProtectionPolicy を使用し、コンテナーで利用できる保護ポリシーを表示します。Use Get-AzRecoveryServicesBackupProtectionPolicy to view the protection policies available in the vault. このコマンドレットを使用して、特定のポリシーを取得したり、ワークロードの種類に関連付けられているポリシーを表示したりできます。You can use this cmdlet to get a specific policy, or to view the policies associated with a workload type. 次の例では、ワークロードの種類 AzureVM のポリシーを取得します。The following example gets policies for workload type, AzureVM.

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM"

出力は次の例のようになります。The output is similar to the following example:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
DefaultPolicy        AzureVM            AzureVM              4/14/2016 5:00:00 PM

注意

PowerShell の BackupTime フィールドのタイムゾーンは UTC です。The timezone of the BackupTime field in PowerShell is UTC. ただし、Azure ポータルにバックアップ時刻が表示されるとき、時刻はローカル タイムゾーンに調整されます。However, when the backup time is shown in the Azure portal, the time is adjusted to your local timezone.

バックアップ保護ポリシーは、少なくとも 1 つのアイテム保持ポリシーと関連付けられます。A backup protection policy is associated with at least one retention policy. アイテム保持ポリシーでは、復旧ポイントが削除される前に保持される期間を定義します。A retention policy defines how long a recovery point is kept before it is deleted.

既定では、開始時刻はスケジュール ポリシー オブジェクトで定義されます。By default, a start time is defined in the Schedule Policy Object. 開始時刻を希望の時刻に変更するには、次の例を使用します。Use the following example to change the start time to the desired start time. 希望の開始時刻も、UTC で指定する必要があります。The desired start time should be in UTC as well. 次の例では、毎日のバックアップの希望の開始時刻が午前 01:00 UTC であるものとします。The below example assumes the desired start time is 01:00 AM UTC for daily backups.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime

次の例では、スケジュール ポリシーとアイテム保持ポリシーを変数に格納します。The following example stores the schedule policy and the retention policy in variables. 次の例では、これらの変数を使用して、保護ポリシー NewPolicy の作成時にパラメーターを定義します。The example uses those variables to define the parameters when creating a protection policy, NewPolicy.

$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -WorkloadType "AzureVM" -RetentionPolicy $retPol -SchedulePolicy $schPol

出力は次の例のようになります。The output is similar to the following example:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewPolicy           AzureVM            AzureVM              4/24/2016 1:30:00 AM

保護を有効にするEnable protection

保護ポリシーを定義したら、アイテムのポリシーも有効にする必要があります。Once you've defined the protection policy, you still must enable the policy for an item. Enable-AzRecoveryServicesBackupProtection を使用して、保護を有効にします。Use Enable-AzRecoveryServicesBackupProtection to enable protection. 保護を有効にするには、アイテムとポリシーの 2 つのオブジェクトが必要です。Enabling protection requires two objects - the item and the policy. ポリシーがコンテナーに関連付けられると、ポリシーのスケジュールで定義された時刻にバックアップのワークフローが開始されます。Once the policy has been associated with the vault, the backup workflow is triggered at the time defined in the policy schedule.

以下の例では、ポリシー NewPolicy を使用してアイテム V2VM の保護を有効にします。The following examples enable protection for the item, V2VM, using the policy, NewPolicy. 例は、VM が暗号化されるかどうか、暗号化の種類によって異なります。The examples differ based on whether the VM is encrypted, and what type of encryption.

暗号化されていない Resource Manager VM で保護を有効にするには:To enable the protection on non-encrypted Resource Manager VMs:

$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1"

暗号化された VM (BEK と KEK を使用して暗号化) で保護を有効にするには、キーとシークレットをキー コンテナーから読み取るためのアクセス許可を Azure Backup サービスに付与する必要があります。To enable the protection on encrypted VMs (encrypted using BEK and KEK), you must give the Azure Backup service permission to read keys and secrets from the key vault.

Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToKeys backup,get,list -PermissionsToSecrets get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1"

暗号化された VM (BEK だけを使用して暗号化) で保護を有効にするには、シークレットをキー コンテナーから読み取るためのアクセス許可を Azure Backup サービスに付与する必要があります。To enable the protection on encrypted VMs (encrypted using BEK only), you must give the Azure Backup service permission to read secrets from the key vault.

Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToSecrets backup,get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1"

注意

Azure Government クラウドを使用している場合は、Set-AzKeyVaultAccessPolicy コマンドレットの -ServicePrincipalName パラメーターで、値 ff281ffe-705c-4f53-9f37-a40e6f2c68f3 を使用します。If you are using the Azure Government cloud, then use the value ff281ffe-705c-4f53-9f37-a40e6f2c68f3 for the parameter ServicePrincipalName in Set-AzKeyVaultAccessPolicy cmdlet.

バックアップ ジョブの監視Monitoring a backup job

Azure ポータルを使用せず、バックアップ ジョブなどの実行時間の長い操作を監視できます。You can monitor long-running operations, such as backup jobs, without using the Azure portal. 進行中のジョブの状態を取得するには、Get-AzRecoveryservicesBackupJob コマンドレットを使用します。To get the status of an in-progress job, use the Get-AzRecoveryservicesBackupJob cmdlet. このコマンドレットは、特定のコンテナーのバックアップ ジョブを取得し、そのコンテナーはコンテナーのコンテキストで指定されます。This cmdlet gets the backup jobs for a specific vault, and that vault is specified in the vault context. 次の例では、配列として進行中のジョブの状態を取得し、状態を $joblist 変数に格納します。The following example gets the status of an in-progress job as an array, and stores the status in the $joblist variable.

$joblist = Get-AzRecoveryservicesBackupJob –Status "InProgress"
$joblist[0]

出力は次の例のようになります。The output is similar to the following example:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM             Backup               InProgress            4/23/2016                5:00:30 PM                cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

完了確認のためにこれらのジョブをポーリングすると、不要な追加コードが発生します。そのため、代わりに Wait-AzRecoveryServicesBackupJob コマンドレットを使用します。Instead of polling these jobs for completion - which is unnecessary additional code - use the Wait-AzRecoveryServicesBackupJob cmdlet. このコマンドレットは、ジョブが完了するまで、または指定したタイムアウト値に到達するまで、実行を一時停止します。This cmdlet pauses the execution until either the job completes or the specified timeout value is reached.

Wait-AzRecoveryServicesBackupJob -Job $joblist[0] -Timeout 43200

Azure VM のバックアップを管理するManage Azure VM backups

保護ポリシーの変更Modify a protection policy

保護ポリシーを変更するには、Set-AzRecoveryServicesBackupProtectionPolicy を使用して SchedulePolicy または RetentionPolicy オブジェクトを変更します。To modify the protection policy, use Set-AzRecoveryServicesBackupProtectionPolicy to modify the SchedulePolicy or RetentionPolicy objects.

スケジュールされた時間を変更するModifying scheduled time

保護ポリシーを作成するときに、開始時刻が既定で割り当てられます。When you create a protection policy, it is assigned a start-time by default. 次の例では、保護ポリシーの開始時刻を変更する方法を示します。The following examples shows how to modify the start time of a protection policy.

$SchPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z" (This is the time that the customer wants to start the backup)
$UtcTime = $UtcTime.ToUniversalTime()
$SchPol.ScheduleRunTimes[0] = $UtcTime
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol  -SchedulePolicy $SchPol

リテンション期間を変更するModifying retention

次の例では、復旧ポイントのリテンション期間を 365 日に変更します。The following example changes the recovery point retention to 365 days.

$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
$retPol.DailySchedule.DurationCountInDays = 365
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol  -RetentionPolicy $RetPol

インスタント リストア スナップショットの保持期間を構成するConfiguring Instant restore snapshot retention

注意

Az PS バージョン 1.6.0 以降では、PowerShell を使用して、ポリシーのインスタント リストアのスナップショット保持期間を更新できますFrom Az PS version 1.6.0 onwards, one can update the instant restore snapshot retention period in policy using Powershell

PS C:\> $bkpPol = Get-AzureRmRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM"
$bkpPol.SnapshotRetentionInDays=7
PS C:\> Set-AzureRmRecoveryServicesBackupProtectionPolicy -policy $bkpPol

既定値は 2 で、ユーザーが最小 1 から最大 5 の範囲で設定できます。The default value will be 2, user can set the value with a min of 1 and max of 5. 毎週のバックアップ ポリシーの場合は、期間は 5 に設定されていて、変更することはできません。For weekly backup polices, the period is set to 5 and cannot be changed.

バックアップをトリガーするTrigger a backup

バックアップ ジョブをトリガーするには、Backup-AzRecoveryServicesBackupItem を使用します。Use Backup-AzRecoveryServicesBackupItem to trigger a backup job. 初回バックアップの場合、完全バックアップが行われます。If it's the initial backup, it is a full backup. 以後のバックアップは、増分コピーとなります。Subsequent backups take an incremental copy. 次の例では、60 日間保持される VM のバックアップが作成されます。The following example takes a VM backup to be retained for 60 days.

$namedContainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM"
$item = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM"
$endDate = (Get-Date).AddDays(60).ToUniversalTime()
$job = Backup-AzRecoveryServicesBackupItem -Item $item -VaultId $targetVault.ID -ExpiryDateTimeUTC $endDate

出力は次の例のようになります。The output is similar to the following example:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM              Backup              InProgress          4/23/2016                  5:00:30 PM                cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

注意

PowerShell での StartTime フィールドと EndTime フィールドのタイムゾーンは UTC です。The timezone of the StartTime and EndTime fields in PowerShell is UTC. ただし、Azure ポータルに時刻が表示されるとき、時刻はローカル タイムゾーンに調整されます。However, when the time is shown in the Azure portal, the time is adjusted to your local timezone.

バックアップ項目のポリシーを変更するChange policy for backup items

ユーザーは既存のポリシーを変更したり、バックアップ対象項目のポリシーを Policy1 から Policy2 に変えたりすることができます。User can either modify existing policy or change the policy of the backed-up item from Policy1 to Policy2. バックアップ対象項目のポリシーを切り替えるには、該当するポリシーとバックアップ項目をフェッチして、バックアップ項目をパラメーターに指定して Enable-AzRecoveryServices コマンドを使用します。To switch policies for a backed-up item, simply fetch the relevant policy and back up item and use the Enable-AzRecoveryServices command with backup item as the parameter.

$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName>
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType AzureVM -BackupManagementType AzureVM -Name "<BackupItemName>"
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1

このコマンドは、バックアップの構成が完了するまで待機してから、次の出力を返します。The command waits until the configure backup is completed and returns the following output.

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
TestVM           ConfigureBackup      Completed            3/18/2019 8:00:21 PM      3/18/2019 8:02:16 PM      654e8aa2-4096-402b-b5a9-e5e71a496c4e

保護の停止Stop protection

データの保持Retain data

ユーザーが保護を停止しようとするとき、Disable-AzRecoveryServicesBackupProtection PS コマンドレットを使用できます。If user wishes to stop protection, they can use the Disable-AzRecoveryServicesBackupProtection PS cmdlet. これによって、スケジュールされているバックアップは停止されますが、それまでにバックアップされたデータは永続的に保持されます。This will stop the scheduled backups but the data backed up until now is retained forever.

$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureVM -WorkloadType AzureVM -Name "<backup item name>" -VaultId $targetVault.ID
Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID

バックアップ データの削除Delete backup data

コンテナーに格納されたバックアップ データを完全に削除するには、保護を無効にするコマンドに -RemoveRecoveryPoints フラグ/スイッチを付けるだけです。In order to completely remove the stored backup data in the vault, just add '-RemoveRecoveryPoints' flag/switch to the 'disable' protection command.

Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID -RemoveRecoveryPoints

Azure VM の復元Restore an Azure VM

VM の復元に Azure ポータルを使用した場合と PowerShell を使用した場合の間には重要な違いがあります。There is an important difference between the restoring a VM using the Azure portal and restoring a VM using PowerShell. PowerShell の場合、復旧ポイントからディスクと構成情報が作成されたら、復元操作は完了します。With PowerShell, the restore operation is complete once the disks and configuration information from the recovery point are created. 復元操作で仮想マシンは作成されません。The restore operation doesn't create the virtual machine. ディスクから仮想マシンを作成するには、「復元されたディスクからの VM の作成」を参照してください。To create a virtual machine from disk, see the section, Create the VM from restored disks. VM 全体を復元しないが、Azure VM バックアップからいくつかのファイルを復元または復旧する場合は、ファイルの回復に関するセクションを参照してください。If you don't want to restore the entire VM, but want to restore or recover a few files from an Azure VM backup, refer to the file recovery section.

ヒント

復元操作で仮想マシンは作成されません。The restore operation does not create the virtual machine.

次の図には、RecoveryServicesVault から BackupRecoveryPoint までのオブジェクト階層が示されています。The following graphic shows the object hierarchy from the RecoveryServicesVault down to the BackupRecoveryPoint.

Recovery Services object hierarchy showing BackupContainer

バックアップ データを復元するには、バックアップ項目と、復元する特定の時点のデータを保持する復旧ポイントを特定します。To restore backup data, identify the backed-up item and the recovery point that holds the point-in-time data. Restore-AzRecoveryServicesBackupItem を使用し、コンテナーからアカウントにデータを復元します。Use Restore-AzRecoveryServicesBackupItem to restore data from the vault to your account.

Azure VM を復元する基本的な手順は次のとおりです。The basic steps to restore an Azure VM are:

  • VM を選択します。Select the VM.
  • 復元ポイントを選択します。Choose a recovery point.
  • ディスクを復元します。Restore the disks.
  • 保存されたディスクから VM を作成します。Create the VM from stored disks.

VM の選択Select the VM

バックアップする正しいアイテムを特定する PowerShell オブジェクトを取得するには、資格情報コンテナー内のコンテナーから開始し、オブジェクト階層の上から下に進みます。To get the PowerShell object that identifies the right backup item, start from the container in the vault, and work your way down the object hierarchy. VM を表すコンテナーを選択するには、Get-AzRecoveryServicesBackupContainer コマンドレットを使用し、Get-AzRecoveryServicesBackupItem コマンドレットへのパイプとして使用します。To select the container that represents the VM, use the Get-AzRecoveryServicesBackupContainer cmdlet and pipe that to the Get-AzRecoveryServicesBackupItem cmdlet.

$namedContainer = Get-AzRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM"
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM"

復元ポイントの選択Choose a recovery point

Get-AzRecoveryServicesBackupRecoveryPoint コマンドレットを使用して、バックアップ項目のすべての復旧ポイントを一覧表示します。Use the Get-AzRecoveryServicesBackupRecoveryPoint cmdlet to list all recovery points for the backup item. その後、復元に使用する復旧ポイントを選択します。Then choose the recovery point to restore. 使用する復旧ポイントがわからない場合、一覧にある最新の RecoveryPointType = AppConsistent ポイントを選択することをお勧めします。If you are unsure which recovery point to use, it is a good practice to choose the most recent RecoveryPointType = AppConsistent point in the list.

次のスクリプトでは、 $rp 変数が、過去 7 日間に選択したバックアップ項目の復旧ポイントの配列になっています。In the following script, the variable, $rp, is an array of recovery points for the selected backup item, from the past seven days. この配列は時間の逆順で並べ替えられています。最新の復旧ポイントのインデックスは 0 です。The array is sorted in reverse order of time with the latest recovery point at index 0. 標準の PowerShell 配列のインデックスを使用して、復旧ポイントを選択します。Use standard PowerShell array indexing to pick the recovery point. 次の例では、$rp[0] は最新の復旧ポイントを選択します。In the example, $rp[0] selects the latest recovery point.

$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
$rp[0]

出力は次の例のようになります。The output is similar to the following example:

RecoveryPointAdditionalInfo :
SourceVMStorageType         : NormalStorage
Name                        : 15260861925810
ItemName                    : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId             : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType           : AppConsistent
RecoveryPointTime           : 4/23/2016 5:02:04 PM
WorkloadType                : AzureVM
ContainerName               : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType               : AzureVM
BackupManagementType        : AzureVM

ディスクの復元Restore the disks

Restore-AzRecoveryServicesBackupItem コマンドレットを使用して、復旧ポイントまでバックアップ項目のデータと構成を復元します。Use the Restore-AzRecoveryServicesBackupItem cmdlet to restore a backup item's data and configuration to a recovery point. 復旧ポイントを特定したら、それを -RecoveryPoint パラメーターの値として使用します。Once you identify a recovery point, use it as the value for the -RecoveryPoint parameter. 上のサンプルでは、使用する復旧ポイントとして $rp[0] が選択されていました。In the above sample, $rp[0] was the recovery point to use. 次のサンプル コードでは、 $rp[0] をディスクの復元に使用する復旧ポイントとして指定しています。In the following sample code, $rp[0] is the recovery point to use for restoring the disk.

ディスクと構成情報を復元するには、次のコマンドを実行します。To restore the disks and configuration information:

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG"
$restorejob

マネージド ディスクの復元Restore managed disks

注意

バックアップされた VM でマネージド ディスクが使用されている場合、それらをマネージド ディスクとして復元できるよう、Azure PowerShell RM モジュール バージョン 6.7.0If the backed VM has managed disks and you want to restore them as managed disks, we have introduced the capability from Azure PowerShell RM module v 6.7.0. 以降には新機能が導入されています。onwards

追加のパラメーター TargetResourceGroupName で、マネージド ディスクの復元先とする RG を指定できます。Provide an additional parameter TargetResourceGroupName to specify the RG to which managed disks will be restored.

注意

パフォーマンスが大幅に向上するため、マネージド ディスクを復元する場合は TargetResourceGroupName を使用することを強くお勧めします。It is strongly recommended to use the TargetResourceGroupName parameter for restoring managed disks since it results in significant performance improvements. また、Azure Powershell Az モジュール 1.0 以降では、マネージド ディスクを復元する場合、このパラメーターは必須ですAlso, from Azure Powershell Az module 1.0 onwards, this parameter is mandatory in case of a restore with managed disks

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks"

VMConfig.JSON ファイルはストレージ アカウントに復元され、マネージド ディスクは指定したターゲット RG に復元されます。The VMConfig.JSON file will be restored to the storage account and the managed disks will be restored to the specified target RG.

出力は次の例のようになります。The output is similar to the following example:

WorkloadName     Operation          Status               StartTime                 EndTime            JobID
------------     ---------          ------               ---------                 -------          ----------
V2VM              Restore           InProgress           4/23/2016 5:00:30 PM                        cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Wait-AzRecoveryServicesBackupJob コマンドレットを使用して、復元ジョブが完了するまで待機します。Use the Wait-AzRecoveryServicesBackupJob cmdlet to wait for the Restore job to complete.

Wait-AzRecoveryServicesBackupJob -Job $restorejob -Timeout 43200

復元ジョブが完了したら、Get-AzRecoveryServicesBackupJobDetails コマンドレットを使用して復元操作の詳細を取得します。Once the Restore job has completed, use the Get-AzRecoveryServicesBackupJobDetails cmdlet to get the details of the restore operation. JobDetails プロパティには、VM を再構築するために必要な情報が含まれています。The JobDetails property has the information needed to rebuild the VM.

$restorejob = Get-AzRecoveryServicesBackupJob -Job $restorejob
$details = Get-AzRecoveryServicesBackupJobDetails -Job $restorejob

ディスクを復元したら、次のセクションに移動して VM を作成します。Once you restore the disks, go to the next section to create the VM.

復元されたディスクからの VM の作成Create a VM from restored disks

ディスクを復元したら、次の手順でディスクから仮想マシンを作成し、構成します。After you restore the disks, use the following steps to create and configure the virtual machine from disk.

注意

復元されたディスクから暗号化された VM を作成するには、Azure のロールに Microsoft.KeyVault/vaults/deploy/action の実行が許可されている必要があります。To create encrypted VMs from restored disks, your Azure role must have permission to perform the action, Microsoft.KeyVault/vaults/deploy/action. ロールにこのアクセス許可がない場合は、この操作でカスタム ロールを作成します。If your role does not have this permission, create a custom role with this action. 詳細については、「Azure RBAC のカスタム ロール」をご覧ください。For more information, see Custom Roles in Azure RBAC.

注意

ディスクを復元した後、新しい VM の作成に直接使用できるデプロイ テンプレートを取得できます。After restoring disks, you can now get a deployment template which you can directly use to create a new VM. 暗号化された/暗号化されていないマネージド/アンマネージド VM を作成するための別の PS コマンドレットはこれ以上なくなりました。No more different PS cmdlets to create managed/unmanaged VMs which are encrypted/unencrypted.

結果のジョブの詳細には、クエリを実行してデプロイできるテンプレート URI が示されます。The resultant job details gives the template URI which can be queried and deployed.

   $properties = $details.properties
   $templateBlobURI = $properties["Template Blob Uri"]

ここで説明しているように、テンプレートをデプロイするだけで新しい VM が作成されます。Just deploy the template to create a new VM as explained here.

New-AzResourceGroupDeployment -Name ExampleDeployment ResourceGroupName ExampleResourceGroup -TemplateUri $templateBlobURI -storageAccountType Standard_GRS

次のセクションでは、"VMConfig" ファイルを使用して VM を作成するために必要な手順を示します。The following section lists steps necessary to create a VM using "VMConfig" file.

注意

VM を作成するには、上記で詳しく説明したデプロイ テンプレートを使用することを強くお勧めします。It is highly recommended to use the deployment template detailed above to create a VM. このセクション (ポイント 1 ~ 6) は、まもなく非推奨となる予定です。This section (Points 1-6) will be deprecated soon.

  1. 復元されたディスクのプロパティに対し、ジョブの詳細を照会します。Query the restored disk properties for the job details.

    $properties = $details.properties
    $storageAccountName = $properties["Target Storage Account Name"]
    $containerName = $properties["Config Blob Container Name"]
    $configBlobName = $properties["Config Blob Name"]
    
  2. Azure Storage コンテキストを設定し、JSON 構成ファイルを復元します。Set the Azure storage context and restore the JSON configuration file.

    Set-AzCurrentStorageAccount -Name $storageaccountname -ResourceGroupName "testvault"
    $destination_path = "C:\vmconfig.json"
    Get-AzStorageBlobContent -Container $containerName -Blob $configBlobName -Destination $destination_path
    $obj = ((Get-Content -Path $destination_path -Raw -Encoding Unicode)).TrimEnd([char]0x00) | ConvertFrom-Json
    
  3. JSON 構成ファイルを使用して VM 構成を作成します。Use the JSON configuration file to create the VM configuration.

    $vm = New-AzVMConfig -VMSize $obj.'properties.hardwareProfile'.vmSize -VMName "testrestore"
    
  4. OS ディスクとデータ ディスクを接続します。Attach the OS disk and data disks. この手順では、さまざまな管理対象/暗号化 VM 構成の例を提示します。This step provides examples for various managed and encrypted VM configurations. 自分の VM 構成に最適なサンプルを利用してください。Use the example that suits your VM configuration.

    • 管理対象外の暗号化されていない VM - 管理対象外の暗号化されていない VM には、次のサンプルを使用します。Non-managed and non-encrypted VMs - Use the following sample for non-managed, non-encrypted VMs.

      Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
      $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
      foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
      {
       $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
      }
      
    • 管理対象外の Azure AD を使用して暗号化された VM (BEK のみ) - 管理対象外の Azure AD を使用して暗号化された VM (BEK のみを使用して暗号化) では、ディスクをアタッチする前に、キー コンテナーにシークレットを復元する必要があります。Non-managed and encrypted VMs with Azure AD (BEK only) - For non-managed, encrypted VMs with Azure AD (encrypted using BEK only), you need to restore the secret to the key vault before you can attach disks. 詳細については、Azure Backup 復旧ポイントから暗号化された仮想マシンの復元に関する記事を参照してください。For more information, see the Restore an encrypted virtual machine from an Azure Backup recovery point. 次の例では、暗号化された VM の OS とデータ ディスクをアタッチする方法を示します。The following sample shows how to attach OS and data disks for encrypted VMs. OS ディスクの設定時には、関連する OS の種類が示されていることを確認してください。When setting the OS disk, make sure to mention the relevant OS type.

      $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
      $dekUrl = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
      Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows/Linux
      $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
      foreach($dd in $obj.'properties.storageProfile'.dataDisks)
      {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
      }
      
    • 管理対象外の Azure AD を使用して暗号化された VM (BEK と KEK) - 管理対象外の Azure AD を使用して暗号化された VM (BEK と KEK を使用して暗号化) では、ディスクをアタッチする前に、キー コンテナーにキーとシークレットを復元します。Non-managed and encrypted VMs with Azure AD (BEK and KEK) - For non-managed, encrypted VMs with Azure AD (encrypted using BEK and KEK), restore the key and secret to the key vault before attaching the disks. 詳細については、Azure Backup 復旧ポイントから暗号化された仮想マシンの復元に関する記事を参照してください。For more information, see Restore an encrypted virtual machine from an Azure Backup recovery point. 次の例では、暗号化された VM の OS とデータ ディスクをアタッチする方法を示します。The following sample shows how to attach OS and data disks for encrypted VMs.

      $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
      $kekUrl = "https://ContosoKeyVault.vault.azure.net:443/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
      $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
      Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows
      $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
      foreach($dd in $obj.'properties.storageProfile'.dataDisks)
      {
      $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
      }
      
    • 管理対象外の Azure AD を使用して暗号化された VM (BEK のみ) - 管理対象外の Azure AD を使用して暗号化された VM (BEK のみを使用して暗号化) では、元の keyVault/シークレットを使用できない場合、Azure Backup 復旧ポイントから暗号化された仮想マシンの復元に関する記事にある手順に従って、シークレットをキー コンテナーに復元します。Non-managed and encrypted VMs without Azure AD (BEK only) - For non-managed, encrypted VMs without Azure AD (encrypted using BEK only), if source keyVault/secret are not available restore the secrets to key vault using the procedure in Restore an non-encrypted virtual machine from an Azure Backup recovery point. 次のスクリプトを実行して、復元された OS BLOB に暗号化の詳細を設定します (この手順はデータ BLOB には必要ありません)。Then execute the following scripts to set encryption details on the restored OS blob (this step is not required for data blob). 復元された keyVault から $dekurl をフェッチすることができます。The $dekurl can be fetched from the restored keyVault.

    次のスクリプトは、元の keyVault/シークレットを利用できない場合にのみ実行する必要があります。The below script needs to be executed only when the source keyVault/secret is not available.

    $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""}}]}"
    $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd"
    $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName
    $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting
    $osBlob.ICloudBlob.SetMetadata()
    

    シークレットが使用できるようになり、暗号化の詳細も OS BLOB に設定されたら、次のスクリプトを使用してディスクをアタッチします。After the secrets are available and the encryption details are also set on the OS Blob, attach the disks using the script given below.

    元の keyVault/シークレットが利用できる場合、上記のスクリプトを実行する必要はありません。If the source keyVault/secrets are available already, then the above script need not be executed.

    Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
    $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
    foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
    {
    $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
    }
    
    • 管理対象外の Azure AD を使用して暗号化された VM (BEK および KEK) - 管理対象外の Azure AD を使用して暗号化された VM (BEK および KEK を使用して暗号化) では、元の keyVault/キー/シークレットを使用できない場合、Azure Backup 復旧ポイントから暗号化された仮想マシンの復元に関する記事にある手順に従って、キーとシークレットをキー コンテナーに復元します。Non-managed and encrypted VMs without Azure AD (BEK and KEK) - For non-managed, encrypted VMs without Azure AD (encrypted using BEK & KEK), if source keyVault/key/secret are not available restore the key and secrets to key vault using the procedure in Restore an non-encrypted virtual machine from an Azure Backup recovery point. 次のスクリプトを実行して、復元された OS BLOB に暗号化の詳細を設定します (この手順はデータ BLOB には必要ありません)。Then execute the following scripts to set encryption details on the restored OS blob (this step is not required for data blob). 復元された keyVault から $dekurl と $kekurl をフェッチすることができます。The $dekurl and $kekurl can be fetched from the restored keyVault.

    次のスクリプトは、元の keyVault/キー/シークレットを利用できない場合にのみ実行する必要があります。The below script needs to be executed only when the source keyVault/key/secret is not available.

      $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
      $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
      $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
      $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""},""keyEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""keyUrl"":""$kekUrl""}}]}"
      $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd"
      $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName
      $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting
      $osBlob.ICloudBlob.SetMetadata()
    

    キー/シークレットが使用できるようになり、暗号化の詳細が OS BLOB に設定されたら、次のスクリプトを使用してディスクをアタッチします。After the key/secrets are available and the encryption details are set on the OS Blob, attach the disks using the script given below.

    元の keyVault/キー/シークレットが利用できる場合、上記のスクリプトを実行する必要はありません。If the source keyVault/key/secrets are available, then the above script need not be executed.

      Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
      $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
      foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
      {
      $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
      }
    
    • 管理対象の暗号化されていない VM - 管理対象の暗号化されていない VM では、復元されたマネージド ディスクをアタッチします。Managed and non-encrypted VMs - For managed non-encrypted VMs, attach the restored managed disks. 詳細については、PowerShell を使用して Windows VM にデータ ディスクを接続するに関する記事を参照してください。For in-depth information, see Attach a data disk to a Windows VM using PowerShell.

    • 管理対象の Azure AD を使用して暗号化された VM (BEK のみ) - 管理対象の Azure AD を使用して暗号化された VM (BEK のみを使用して暗号化) では、復元されたマネージド ディスクをアタッチします。Managed and encrypted VMs with Azure AD (BEK only) - For managed encrypted VMs with Azure AD (encrypted using BEK only), attach the restored managed disks. 詳細については、PowerShell を使用して Windows VM にデータ ディスクを接続するに関する記事を参照してください。For in-depth information, see Attach a data disk to a Windows VM using PowerShell.

    • 管理対象の Azure AD を使用して暗号化された VM (BEK および KEK) - 管理対象の Azure AD を使用して暗号化された VM (BEK および KEK を使用して暗号化) では、復元されたマネージド ディスクをアタッチします。Managed and encrypted VMs with Azure AD (BEK and KEK) - For managed encrypted VMs with Azure AD (encrypted using BEK and KEK), attach the restored managed disks. 詳細については、PowerShell を使用して Windows VM にデータ ディスクを接続するに関する記事を参照してください。For in-depth information, see Attach a data disk to a Windows VM using PowerShell.

    • 管理対象の Azure AD を使用して暗号化された VM (BEK のみ) - 管理対象の Azure AD を使用して暗号化された VM (BEK のみを使用して暗号化) では、元の keyVault/シークレットを使用できない場合、Azure Backup 復旧ポイントから暗号化された仮想マシンの復元に関する記事にある手順に従って、シークレットをキー コンテナーに復元します。次のスクリプトを実行して、復元された OS ディスクに暗号化の詳細を設定します (この手順はデータ ディスクには必要ありません)。Managed and encrypted VMs without Azure AD (BEK only) -For managed, encrypted VMs without Azure AD (encrypted using BEK only), if source keyVault/secret are not available restore the secrets to key vault using the procedure in Restore an non-encrypted virtual machine from an Azure Backup recovery point.Then execute the following scripts to set encryption details on the restored OS disk (this step is not required for data disk). 復元された keyVault から $dekurl をフェッチすることができます。The $dekurl can be fetched from the restored keyVault.

      次のスクリプトは、元の keyVault/シークレットを利用できない場合にのみ実行する必要があります。The below script needs to be executed only when the source keyVault/secret is not available.

      $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
      $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
      $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true
      $diskupdateconfig = Set-AzDiskUpdateDiskEncryptionKey -DiskUpdate $diskupdateconfig -SecretUrl $dekUrl -SourceVaultId $keyVaultId  
      Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
      

      シークレットが使用できるようになり、暗号化の詳細が OS ディスクに設定されたら、「PowerShell を使用して Windows VM にデータ ディスクを接続する」を参照して、復元されたマネージド ディスクをアタッチします。After the secrets are available and the encryption details are set on the OS disk, to attach the restored managed disks, see Attach a data disk to a Windows VM using PowerShell.

    • 管理対象の Azure AD を使用して暗号化された VM (BEK および KEK) - 管理対象の Azure AD を使用して暗号化された VM (BEK および KEK を使用して暗号化) では、元の keyVault/キー/シークレットを使用できない場合、Azure Backup 復旧ポイントから暗号化された仮想マシンの復元に関する記事にある手順に従って、キーとシークレットをキー コンテナーに復元します。Managed and encrypted VMs without Azure AD (BEK and KEK) - For managed, encrypted VMs without Azure AD (encrypted using BEK & KEK),if source keyVault/key/secret are not available restore the key and secrets to key vault using the procedure in Restore an non-encrypted virtual machine from an Azure Backup recovery point. 次のスクリプトを実行して、復元された OS ディスクに暗号化の詳細を設定します (この手順はデータディスクには必要ありません)。Then execute the following scripts to set encryption details on the restored OS disk (this step is not required for data disk). 復元された keyVault から $dekurl と $kekurl をフェッチすることができます。The $dekurl and $kekurl can be fetched from the restored keyVault.

    次のスクリプトは、元の keyVault/キー/シークレットを利用できない場合にのみ実行する必要があります。The below script needs to be executed only when the source keyVault/key/secret is not available.

      $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
      $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
      $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
      $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true
      $diskupdateconfig = Set-AzDiskUpdateDiskEncryptionKey -DiskUpdate $diskupdateconfig -SecretUrl $dekUrl -SourceVaultId $keyVaultId  
      $diskupdateconfig = Set-AzDiskUpdateKeyEncryptionKey -DiskUpdate $diskupdateconfig -KeyUrl $kekUrl -SourceVaultId $keyVaultId  
      Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
    

    キー/シークレットが使用できるようになり、暗号化の詳細が OS ディスクに設定されたら、「PowerShell を使用して Windows VM にデータ ディスクを接続する」を参照して、復元されたマネージド ディスクをアタッチします。After the key/secrets are available and the encryption details are set on the OS disk, to attach the restored managed disks, see Attach a data disk to a Windows VM using PowerShell.

  5. ネットワーク設定を設定します。Set the Network settings.

    $nicName="p1234"
    $pip = New-AzPublicIpAddress -Name $nicName -ResourceGroupName "test" -Location "WestUS" -AllocationMethod Dynamic
    $virtualNetwork = New-AzVirtualNetwork -ResourceGroupName "test" -Location "WestUS" -Name "testvNET" -AddressPrefix 10.0.0.0/16
    $virtualNetwork | Set-AzVirtualNetwork
    $vnet = Get-AzVirtualNetwork -Name "testvNET" -ResourceGroupName "test"
    $subnetindex=0
    $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName "test" -Location "WestUS" -SubnetId $vnet.Subnets[$subnetindex].Id -PublicIpAddressId $pip.Id
    $vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
    
  6. 仮想マシンを作成します。Create the virtual machine.

    New-AzVM -ResourceGroupName "test" -Location "WestUS" -VM $vm
    
  7. ADE 拡張子をプッシュします。Push ADE extension.

    • Azure AD を使用した VM の場合 -データ ディスクの暗号化を手動で有効にするには、次のコマンドを使用します。For VM with Azure AD - Use the following command to manually enable encryption for the data disks

      BEK のみBEK only

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -VolumeType Data
      

      BEK と KEKBEK and KEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId  -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -VolumeType Data
      
    • Azure AD を使用しない VM の場合 -データ ディスクの暗号化を手動で有効にするには、次のコマンドを使用します。For VM without Azure AD - Use the following command to manually enable encryption for the data disks.

      コマンドの実行中に、AADClientID の入力を求められたら、Azure PowerShell を更新する必要があります。If incase during the command execution it asks for AADClientID, then you need to update your Azure PowerShell.

      BEK のみBEK only

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
      

      BEK と KEKBEK and KEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
      

Azure VM バックアップからのファイルの復元Restore files from an Azure VM backup

Azure VM バックアップからは、ディスクを復元するだけでなく、個々のファイルを復元することもできます。In addition to restoring disks, you can also restore individual files from an Azure VM backup. ファイルの復元機能では、復旧ポイントのすべてのファイルにアクセスできます。The restore files functionality provides access to all files in a recovery point. 通常のファイルの場合と同様に、ファイル エクスプローラーを使用してファイルを管理します。Manage the files via File Explorer as you would for normal files.

Azure VM バックアップからファイルを復元する基本的な手順は次のとおりです。The basic steps to restore a file from an Azure VM backup are:

  • VM の選択Select the VM
  • 復元ポイントの選択Choose a recovery point
  • 復旧ポイントのディスクのマウントMount the disks of recovery point
  • 必要なファイルのコピーCopy the required files
  • ディスクのマウント解除Unmount the disk

VM の選択Select the VM

バックアップする正しいアイテムを特定する PowerShell オブジェクトを取得するには、資格情報コンテナー内のコンテナーから開始し、オブジェクト階層の上から下に進みます。To get the PowerShell object that identifies the right backup item, start from the container in the vault, and work your way down the object hierarchy. VM を表すコンテナーを選択するには、Get-AzRecoveryServicesBackupContainer コマンドレットを使用し、Get-AzRecoveryServicesBackupItem コマンドレットへのパイプとして使用します。To select the container that represents the VM, use the Get-AzRecoveryServicesBackupContainer cmdlet and pipe that to the Get-AzRecoveryServicesBackupItem cmdlet.

$namedContainer = Get-AzRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM"
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM"

復元ポイントの選択Choose a recovery point

Get-AzRecoveryServicesBackupRecoveryPoint コマンドレットを使用して、バックアップ項目のすべての復旧ポイントを一覧表示します。Use the Get-AzRecoveryServicesBackupRecoveryPoint cmdlet to list all recovery points for the backup item. その後、復元に使用する復旧ポイントを選択します。Then choose the recovery point to restore. 使用する復旧ポイントがわからない場合、一覧にある最新の RecoveryPointType = AppConsistent ポイントを選択することをお勧めします。If you are unsure which recovery point to use, it is a good practice to choose the most recent RecoveryPointType = AppConsistent point in the list.

次のスクリプトでは、 $rp 変数が、過去 7 日間に選択したバックアップ項目の復旧ポイントの配列になっています。In the following script, the variable, $rp, is an array of recovery points for the selected backup item, from the past seven days. この配列は時間の逆順で並べ替えられています。最新の復旧ポイントのインデックスは 0 です。The array is sorted in reverse order of time with the latest recovery point at index 0. 標準の PowerShell 配列のインデックスを使用して、復旧ポイントを選択します。Use standard PowerShell array indexing to pick the recovery point. 次の例では、$rp[0] は最新の復旧ポイントを選択します。In the example, $rp[0] selects the latest recovery point.

$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
$rp[0]

出力は次の例のようになります。The output is similar to the following example:

RecoveryPointAdditionalInfo :
SourceVMStorageType         : NormalStorage
Name                        : 15260861925810
ItemName                    : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId             : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType           : AppConsistent
RecoveryPointTime           : 4/23/2016 5:02:04 PM
WorkloadType                : AzureVM
ContainerName               : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType               : AzureVM
BackupManagementType        : AzureVM

復旧ポイントのディスクのマウントMount the disks of recovery point

Get-AzRecoveryServicesBackupRPMountScript コマンドレットを使用して、スクリプトで復旧ポイントのすべてのディスクをマウントします。Use the Get-AzRecoveryServicesBackupRPMountScript cmdlet to get the script to mount all the disks of the recovery point.

注意

ディスクは、iSCSI に接続されたディスクとして、スクリプトが実行されているマシンにマウントされます。The disks are mounted as iSCSI attached disks to the machine where the script is run. マウントはすぐに行われます。課金は発生しません。Mounting occurs immediately, and you don't incur any charges.

Get-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0]

出力は次の例のようになります。The output is similar to the following example:

OsType  Password        Filename
------  --------        --------
Windows e3632984e51f496 V2VM_wus2_8287309959960546283_451516692429_cbd6061f7fc543c489f1974d33659fed07a6e0c2e08740.exe

ファイルの回復先となるマシンでこのスクリプトを実行します。Run the script on the machine where you want to recover the files. スクリプトを実行するには、与えられたパスワードを入力する必要があります。To execute the script, you must enter the password provided. ディスクが接続されたら、エクスプローラーを使用し、新しいボリュームとファイルを参照します。After the disks are attached, use Windows File Explorer to browse the new volumes and files. 詳細については、「Azure 仮想マシンのバックアップからファイルを回復する」というバックアップに関する記事を参照してください。For more information, refer to the Backup article, Recover files from Azure virtual machine backup.

ディスクのマウント解除Unmount the disks

必要なファイルがコピーされたら、Disable-AzRecoveryServicesBackupRPMountScript を使用してディスクのマウントを解除します。After the required files are copied, use Disable-AzRecoveryServicesBackupRPMountScript to unmount the disks. 復旧ポイントのファイルへのアクセスが削除されるように、必ずディスクのマウントを解除してください。Be sure to unmount the disks so access to the files of the recovery point is removed.

Disable-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0]

次の手順Next steps

PowerShell を使用して Azure リソースを操作する場合は、Windows Server のバックアップのデプロイと管理に関する PowerShell の記事をご覧ください。If you prefer to use PowerShell to engage with your Azure resources, see the PowerShell article, Deploy and Manage Backup for Windows Server. DPM バックアップを管理する場合は、記事「DPM 用の Backup のデプロイと管理」を参照してください。If you manage DPM backups, see the article, Deploy and Manage Backup for DPM.