PowerShell を使用して Windows Server/Windows Client に Microsoft Azure Backup をデプロイおよび管理する手順

この記事では、PowerShell を使用して Windows Server または Windows クライアント上に Azure Backup を設定したり、バックアップと回復を管理したりする方法について説明します。

Azure PowerShell をインストールする

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、「Azure PowerShell のインストール」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

開始するには、PowerShell の最新リリースをインストールします。

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

次の手順では、Recovery Services コンテナーの作成について説明します。 Recovery Services コンテナーは Backup コンテナーとは異なります。

  1. Azure Backup を初めて使用する場合、Register-AzResourceProvider コマンドレットを使って Azure Recovery Services プロバイダーをサブスクリプションに登録する必要があります。

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  2. Recovery Services コンテナーは Azure Resource Manager リソースであるため、リソース グループ内に配置する必要があります。 既存のリソース グループを使用することも、新しいリソース グループを作成することもできます。 新しいリソース グループを作成する場合、リソース グループの名前と場所を指定します。

    New-AzResourceGroup –Name "test-rg" –Location "WestUS"
    
  3. New-AzRecoveryServicesVault コマンドレットを使用して、新しいコンテナーを作成します。 リソース グループに使用したのと同じコンテナーの場所を指定してください。

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName " test-rg" -Location "WestUS"
    
  4. 使用するストレージ冗長性の種類を指定します。 ローカル冗長ストレージ (LRS)geo 冗長ストレージ (GRS)、または ゾーン冗長ストレージ (ZRS) を使用できます。 次に示す例では、testVault-BackupStorageRedundancy オプションが GeoRedundant に設定されています。

    ヒント

    Azure Backup コマンドレットの多くは、入力として Recovery Services コンテナー オブジェクトを必要としています。 このため、Backup Recovery Services コンテナー オブジェクトを変数に格納すると便利です。

    $Vault1 = Get-AzRecoveryServicesVault –Name "testVault"
    Set-AzRecoveryServicesBackupProperties -Vault $Vault1 -BackupStorageRedundancy GeoRedundant
    

サブスクリプション内のコンテナーの表示

Get-AzRecoveryServicesVault を使用して、現在のサブスクリプション内にあるすべてのコンテナーを一覧表示します。 このコマンドを使用すると、新しいコンテナーが作成されたことを確認したり、サブスクリプション内のどのコンテナーが利用できるかを調べたりすることができます。

Get-AzRecoveryServicesVault コマンドを実行すると、サブスクリプション内にあるすべてのコンテナーが一覧表示されます。

Get-AzRecoveryServicesVault
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

MARS エージェントをアップグレードする

2\.0.9083.0 より前のバージョンの Microsoft Azure Recovery Service (MARS) エージェントには、Azure Access Control Service との依存関係があります。 MARS エージェントは、Azure Backup エージェントとも呼ばれます。

2018 年に、Microsoft では、Azure Access Control Service (ACS) が非推奨になりました。 2018 年 3 月 19 日以降、2.0.9083.0 より前のすべてのバージョンの MARS エージェントでバックアップが失敗します。 バックアップの失敗を回避または解決するには MARS エージェントを最新バージョンにアップグレードします。 MARS エージェントのアップグレードが必要なサーバーを識別するには、「Microsoft Azure Recovery Services (MARS) エージェントのアップグレード」の手順に従ってください。

MARS エージェントは、ファイル、フォルダー、およびシステム状態データを Azure にバックアップするために使用します。 System Center DPM および Azure Backup Server は、MARS エージェントを使用してデータを Azure にバックアップします。

Microsoft Azure Backup エージェントのインストール

Microsoft Azure Backup エージェントをインストールする前に、Windows Server に、インストーラーをダウンロードする必要があります。 最新バージョンのインストーラーは、 Microsoft ダウンロード センター または Recovery Services コンテナーの [ダッシュボード] ページから入手することができます。 インストーラーを、C:\Downloads\* などの、簡単にアクセスできる場所に保存します。

または、PowerShell を使用して、ダウンローダーを取得します。

$MarsAURL = 'https://aka.ms/Azurebackup_Agent'
$WC = New-Object System.Net.WebClient
$WC.DownloadFile($MarsAURL,'C:\downloads\MARSAgentInstaller.exe')
C:\Downloads\MARSAgentInstaller.exe /q

エージェントをインストールするには、管理者特権の PowerShell コンソールで、次のコマンドを実行します。

MARSAgentInstaller.exe /q

これにより、エージェントはすべて既定のオプションが指定されてインストールされます。 インストールは、バックグラウンドで数分かかります。 /nu オプションを指定しない場合は、インストールの最後に [Windows Update] ウィンドウが開き、更新プログラムがないかどうかが確認されます。 インストールすると、エージェントが、インストールされているプログラムの一覧に表示されます。

インストールされているプログラムの一覧を表示するには、 [コントロール パネル]>[プログラム]>[プログラムと機能] に移動します。

インストールされているエージェント

インストール オプション

コマンド ラインで使用できるすべてのオプションを表示するには、次のコマンドを使用します。

MARSAgentInstaller.exe /?

利用可能なオプションは、次のとおりです。

オプション 詳細 Default
/q サイレント インストール -
/p:"location" Azure Backup エージェントのインストール フォルダーへのパス C:\Program Files\Microsoft Azure Recovery Services Agent
/s:"location" Azure Backup エージェントのキャッシュ フォルダーへのパス C:\Program Files\Microsoft Azure Recovery Services Agent\Scratch
/m Microsoft Update へのオプトイン -
/nu インストールが完了するまで更新プログラムを確認しない -
/d Microsoft Azure Recovery Services エージェントをアンインストールする -
/ph プロキシ ホストのアドレス -
/po プロキシ ホストのポート番号 -
/pu プロキシ ホストのユーザー名 -
/pw プロキシ パスワード -

Recovery Services コンテナーへの Windows Server または Windows クライアント コンピューターの登録

Recovery Services コンテナーを作成したら、最新のエージェントとコンテナーの資格情報をダウンロードし、C:\Downloads のような便利な場所に保管します。

$CredsPath = "C:\downloads"
$CredsFilename = Get-AzRecoveryServicesVaultSettingsFile -Backup -Vault $Vault1 -Path $CredsPath

PowerShell Az モジュールを使用して登録する

Note

コンテナー証明書の生成に関するバグは、Az 3.5.0 リリースで修正されています。 コンテナー証明書をダウンロードするには、Az 3.5.0 リリース バージョン以上を使用してください。

PowerShell の最新の Az モジュールでは、基になるプラットフォームの制限のために、コンテナーの資格情報をダウンロードするには自己署名証明書が必要になります。 自己署名証明書を指定してコンテナーの資格情報をダウンロードする例を次に示します。

$dt = $(Get-Date).ToString("M-d-yyyy")
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -FriendlyName 'test-vaultcredentials' -subject "Windows Azure Tools" -KeyExportPolicy Exportable -NotAfter $(Get-Date).AddHours(48) -NotBefore $(Get-Date).AddHours(-24) -KeyProtection None -KeyUsage None -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2") -Provider "Microsoft Enhanced Cryptographic Provider v1.0"
$certficate = [convert]::ToBase64String($cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx))
$CredsFilename = Get-AzRecoveryServicesVaultSettingsFile -Backup -Vault $Vault -Path $CredsPath -Certificate $certficate

Windows Server または Windows クライアント コンピューターで Start-OBRegistration コマンドレットを実行し、コンピューターをコンテナーに登録します。 これと、バックアップに使用されるその他のコマンドレットは、インストール プロセスの一部として MARS AgentInstaller で追加された MSONLINE モジュールに含まれています。

このエージェント インストーラーでは、$Env:PSModulePath 変数が更新されません。 つまり、モジュールの自動読み込みに失敗します。 これを解決するために、次を実行できます。

$Env:PSModulePath += ';C:\Program Files\Microsoft Azure Recovery Services Agent\bin\Modules'

または、次のようにして、スクリプトにモジュールを手動で読み込んでもかまいません。

Import-Module -Name 'C:\Program Files\Microsoft Azure Recovery Services Agent\bin\Modules\MSOnlineBackup'

Online Backup のコマンドレットを読み込んだら、コンテナーの資格情報を登録します。

Start-OBRegistration -VaultCredentials $CredsFilename.FilePath -Confirm:$false
CertThumbprint      : 7a2ef2caa2e74b6ed1222a5e89288ddad438df2
SubscriptionID      : ef4ab577-c2c0-43e4-af80-af49f485f3d1
ServiceResourceName : testvault
Region              : WestUS
Machine registration succeeded.

重要

コンテナーの資格情報ファイルを指定する際には、相対パスは使用しないでください。 このコマンドレットへの入力には、絶対パスを指定する必要があります。

ネットワークの設定

プロキシ サーバーを介して Windows コンピューターをインターネットに接続した場合、プロキシ設定もエージェントに指定できます。 この例では、プロキシ サーバーがないため、プロキシ関連の情報を明示的にクリアしています。

特定の曜日セットに対して、帯域幅の使用を、work hour bandwidthオプションとnon-work hour bandwidthオプションで制御することもできます。

プロキシと帯域幅の詳細の設定は、 Set-OBMachineSetting コマンドレットを使用して実行します。

Set-OBMachineSetting -NoProxy
Server properties updated successfully.
Set-OBMachineSetting -NoThrottle
Server properties updated successfully.

暗号化の設定

データの機密性を保護するために、Microsoft Azure Backup に送信されるバックアップ データは暗号化されます。 暗号化パスフレーズは、復元時にデータの暗号化を解除するための "パスワード" になります。

Azure portal の [Recovery Services コンテナー] セクションにある [設定]>[プロパティ]>[セキュリティ PIN] 下の [生成] を選択して、セキュリティ PIN を生成する必要があります。

Note

セキュリティ PIN は、Azure portal でのみ生成できます。

その後、コマンド内で generatedPIN としてこれを使用します。

$PassPhrase = ConvertTo-SecureString -String "Complex!123_STRING" -AsPlainText -Force
Set-OBMachineSetting -EncryptionPassPhrase $PassPhrase -SecurityPin "<generatedPIN>"
Server properties updated successfully

重要

設定したら、パスフレーズ情報をセキュリティで保護された安全な場所に保管してください。 このパスフレーズがないと、Azure からデータを復元できません。

ファイルとフォルダーのバックアップ

Windows Server およびクライアントから Azure Backup へのすべてのバックアップは、ポリシーによって管理されます。 ポリシーには、次の 3 つの部分があります。

  • バックアップ スケジュール。バックアップをいつ実行し、いつサービスと同期するかを指定します。
  • 保持スケジュール は、Azure で回復ポイントを保持する期間を指定します。
  • ファイル内包/除外仕様。何をバックアップするかを指定します。

このドキュメントでは、バックアップを自動化するため、構成を何も行っていないことを前提としています。 まず、 New-OBPolicy コマンドレットを使って新しいバックアップ ポリシーを作成します。

$NewPolicy = New-OBPolicy

この時点でポリシーは空であり、どの項目を含めるか、どの項目を除外するか、いつバックアップを実行するか、どこにバックアップを格納するかを定義するために、他のコマンドレットが必要です。

バックアップ スケジュールの構成

ポリシーの 3 つの部分の最初は、New-OBSchedule コマンドレットを使って作成されるバックアップ スケジュールです。 バックアップ スケジュールでは、バックアップをいつ実行するかを定義します。 スケジュールを作成するときは、次の 2 つの入力パラメーターを指定する必要があります。

  • 曜日 。 バックアップ ジョブは、週に 1 回、毎日、またはこれらを組み合わせたさまざまな間隔で実行できます。
  • 1 日のうちの時間帯 。 バックアップがトリガーされる最大 3 つの異なる時間帯を定義できます。

たとえば、毎週土曜日と日曜日の午後 4 時に実行されるようにバックアップ ポリシーを構成できます。

$Schedule = New-OBSchedule -DaysOfWeek Saturday, Sunday -TimesOfDay 16:00

バックアップ スケジュールはポリシーに関連付ける必要があります。これを行うには、Set-OBSchedule コマンドレットを使用します。

Set-OBSchedule -Policy $NewPolicy -Schedule $Schedule
BackupSchedule : 4:00 PM Saturday, Sunday, Every 1 week(s) DsList : PolicyName : RetentionPolicy : State : New PolicyState : Valid

保有ポリシーの構成

保有ポリシーでは、バックアップ ジョブから作成した回復ポイントをどのくらいの期間保持するかを定義します。 New-OBRetentionPolicy コマンドレットを使って新しいアイテム保持ポリシーを作成するとき、Azure Backup でバックアップの回復ポイントを保持する日数を指定できます。 次の例では、7 日間の保有ポリシーを設定します。

$RetentionPolicy = New-OBRetentionPolicy -RetentionDays 7

保有ポリシーは、コマンドレット Set-OBRetentionPolicyを使用してメインのポリシーと関連付ける必要があります。

Set-OBRetentionPolicy -Policy $NewPolicy -RetentionPolicy $RetentionPolicy
BackupSchedule  : 4:00 PM
                  Saturday, Sunday,
                  Every 1 week(s)
DsList          :
PolicyName      :
RetentionPolicy : Retention Days : 7

                  WeeklyLTRSchedule :
                  Weekly schedule is not set

                  MonthlyLTRSchedule :
                  Monthly schedule is not set

                  YearlyLTRSchedule :
                  Yearly schedule is not set

State           : New
PolicyState     : Valid

バックアップするファイルを含むまたは除外する

OBFileSpec オブジェクトにより、ファイルをバックアップに含めるか除外するかを定義します。 ここでは、コンピューター上の保護されたファイルとフォルダーを範囲から除外する一連のルールを示します。 ファイル内包または除外ルールは必要に応じていくつでも保持でき、ポリシーに関連付けることができます。 新しい OBFileSpec オブジェクトを作成して、次の操作を実行できます。

  • 含めるファイルおよびフォルダーを指定
  • 除外するファイルおよびフォルダーを指定
  • フォルダー内のデータの再帰バックアップを指定。または、指定したフォルダー内の最上位レベルのファイルのみをバックアップするかどうかを指定。

後者は、New-OBFileSpec コマンドの NonRecursive フラグを使用して実行できます。

次の例では、ボリューム C: および D: をバックアップし、Windows フォルダーと任意の一時フォルダー内の OS バイナリを除外します。 それを行うには、New-OBFileSpec コマンドレットを使用して 2 つのファイル指定 (包含用に 1 つと除外用に 1 つ) を作成します。 ファイル指定が作成されたら、 Add-OBFileSpec コマンドレットを使用してポリシーに関連付けます。

$Inclusions = New-OBFileSpec -FileSpec @("C:\", "D:\")
$Exclusions = New-OBFileSpec -FileSpec @("C:\windows", "C:\temp") -Exclude
Add-OBFileSpec -Policy $NewPolicy -FileSpec $Inclusions
BackupSchedule  : 4:00 PM
                  Saturday, Sunday,
                  Every 1 week(s)
DsList          : {DataSource
                  DatasourceId:0
                  Name:C:\
                  FileSpec:FileSpec
                  FileSpec:C:\
                  IsExclude:False
                  IsRecursive:True

                  , DataSource
                  DatasourceId:0
                  Name:D:\
                  FileSpec:FileSpec
                  FileSpec:D:\
                  IsExclude:False
                  IsRecursive:True

                  }
PolicyName      :
RetentionPolicy : Retention Days : 7

                  WeeklyLTRSchedule :
                  Weekly schedule is not set

                  MonthlyLTRSchedule :
                  Monthly schedule is not set

                  YearlyLTRSchedule :
                  Yearly schedule is not set

State           : New
PolicyState     : Valid
Add-OBFileSpec -Policy $NewPolicy -FileSpec $Exclusions
BackupSchedule  : 4:00 PM
                  Saturday, Sunday,
                  Every 1 week(s)
DsList          : {DataSource
                  DatasourceId:0
                  Name:C:\
                  FileSpec:FileSpec
                  FileSpec:C:\
                  IsExclude:False
                  IsRecursive:True
                  ,FileSpec
                  FileSpec:C:\windows
                  IsExclude:True
                  IsRecursive:True
                  ,FileSpec
                  FileSpec:C:\temp
                  IsExclude:True
                  IsRecursive:True

                  , DataSource
                  DatasourceId:0
                  Name:D:\
                  FileSpec:FileSpec
                  FileSpec:D:\
                  IsExclude:False
                  IsRecursive:True

                  }
PolicyName      :
RetentionPolicy : Retention Days : 7

                  WeeklyLTRSchedule :
                  Weekly schedule is not set

                  MonthlyLTRSchedule :
                  Monthly schedule is not set

                  YearlyLTRSchedule :
                  Yearly schedule is not set

State           : New
PolicyState     : Valid

ポリシーの適用

これで、ポリシー オブジェクトが完了し、バックアップ スケジュール、保有ポリシー、およびファイルの包含/除外リストに関連付けられました。 次に、Microsoft Azure Backup で使用するためにこのポリシーをコミットできます。 新しく作成されたポリシーを適用する前に、Remove-OBPolicy コマンドレットを使用して、サーバーに関連付けられた既存のバックアップ ポリシーが存在しないことを確認してください。 ポリシーを削除すると確認のダイアログが表示されます。 確認をスキップするには、コマンドレットで -Confirm:$false フラグを使用します。

Note

コマンドレットの実行時、セキュリティ PIN を設定するように求められた場合、方法 1 セクションをご覧ください。

Get-OBPolicy | Remove-OBPolicy
Microsoft Azure Backup Are you sure you want to remove this backup policy? This will delete all the backed up data. [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

Set-OBPolicy コマンドレットで、ポリシー オブジェクトのコミットを実行します。 ここでも、確認のダイアログが表示されます。 確認をスキップするには、コマンドレットで -Confirm:$false フラグを使用します。

Set-OBPolicy -Policy $NewPolicy
Microsoft Azure Backup Do you want to save this backup policy ? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
BackupSchedule : 4:00 PM Saturday, Sunday, Every 1 week(s)
DsList : {DataSource
         DatasourceId:4508156004108672185
         Name:C:\
         FileSpec:FileSpec
         FileSpec:C:\
         IsExclude:False
         IsRecursive:True,

         FileSpec
         FileSpec:C:\windows
         IsExclude:True
         IsRecursive:True,

         FileSpec
         FileSpec:C:\temp
         IsExclude:True
         IsRecursive:True,

         DataSource
         DatasourceId:4508156005178868542
         Name:D:\
         FileSpec:FileSpec
         FileSpec:D:\
         IsExclude:False
         IsRecursive:True
    }
PolicyName : c2eb6568-8a06-49f4-a20e-3019ae411bac
RetentionPolicy : Retention Days : 7
              WeeklyLTRSchedule :
              Weekly schedule is not set

              MonthlyLTRSchedule :
              Monthly schedule is not set

              YearlyLTRSchedule :
              Yearly schedule is not set
State : Existing PolicyState : Valid

既存のバックアップ ポリシーの詳細を表示するには、 Get-OBPolicy コマンドレットを使用します。 バックアップ スケジュール用の Get-OBSchedule コマンドレット、リテンション期間ポリシー用の Get-OBRetentionPolicy コマンドレットを使用してさらにドリルダウンできます。

Get-OBPolicy | Get-OBSchedule
SchedulePolicyName : 71944081-9950-4f7e-841d-32f0a0a1359a
ScheduleRunDays : {Saturday, Sunday}
ScheduleRunTimes : {16:00:00}
State : Existing
Get-OBPolicy | Get-OBRetentionPolicy
RetentionDays : 7
RetentionPolicyName : ca3574ec-8331-46fd-a605-c01743a5265e
State : Existing
Get-OBPolicy | Get-OBFileSpec
FileName : *
FilePath : \?\Volume{b835d359-a1dd-11e2-be72-2016d8d89f0f}\
FileSpec : D:\
IsExclude : False
IsRecursive : True

FileName : *
FilePath : \?\Volume{cdd41007-a22f-11e2-be6c-806e6f6e6963}\
FileSpec : C:\
IsExclude : False
IsRecursive : True

FileName : *
FilePath : \?\Volume{cdd41007-a22f-11e2-be6c-806e6f6e6963}\windows
FileSpec : C:\windows
IsExclude : True
IsRecursive : True

FileName : *
FilePath : \?\Volume{cdd41007-a22f-11e2-be6c-806e6f6e6963}\temp
FileSpec : C:\temp
IsExclude : True
IsRecursive : True

オンデマンド バックアップの実行

バックアップ ポリシーが設定されると、スケジュールに従ってバックアップが実行されます。 Start-OBBackup コマンドレットを使って、オンデマンド バックアップを起動することもできます。

Get-OBPolicy | Start-OBBackup
Initializing
Taking snapshot of volumes...
Preparing storage...
Generating backup metadata information and preparing the metadata VHD...
Data transfer is in progress. It might take longer since it is the first backup and all data needs to be transferred...
Data transfer completed and all backed up data is in the cloud. Verifying data integrity...
Data transfer completed
In progress...
Job completed.
The backup operation completed successfully.

MARS エージェントでの Windows Server のシステム状態のバックアップ

このセクションでは、MARS エージェントでシステムの状態を設定する PowerShell コマンドについて説明します

スケジュール

$sched = New-OBSchedule -DaysOfWeek Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday -TimesOfDay 2:00

保持

$rtn = New-OBRetentionPolicy -RetentionDays 32 -RetentionWeeklyPolicy -RetentionWeeks 13 -WeekDaysOfWeek Sunday -WeekTimesOfDay 2:00  -RetentionMonthlyPolicy -RetentionMonths 13 -MonthDaysOfMonth 1 -MonthTimesOfDay 2:00

スケジュールと保持期間の構成

New-OBPolicy | Add-OBSystemState |  Set-OBRetentionPolicy -RetentionPolicy $rtn | Set-OBSchedule -Schedule $sched | Set-OBSystemStatePolicy

ポリシーの確認

Get-OBSystemStatePolicy

Microsoft Azure Backup からのデータの復元

このセクションでは、Microsoft Azure Backup からのデータの復元を自動化する方法を手順に従って説明します。 次の手順を実行します。

  1. ソース ボリュームを選択する
  2. バックアップの復元ポイントを選択する
  3. 復元する項目を選指定する
  4. 復元プロセスをトリガーする

ソース ボリュームの選択

Azure Backup から項目を復元するには、まず、項目のソースを特定する必要があります。 Windows サーバーまたは Windows クライアントのコンテキストでコマンドを実行するため、コンピューターは既に特定されています。 ソースを特定する次の手順は、それを含むボリュームを特定することです。 該当のコンピューターからバックアップするボリュームまたはソースの一覧は、 Get-OBRecoverableSource コマンドレットを実行して取得できます。 このコマンドは、このサーバー/クライアントでバックアップされるすべてのソースの配列を返します。

$Source = Get-OBRecoverableSource
$Source
FriendlyName : C:\
RecoverySourceName : C:\
ServerName : myserver.microsoft.com

FriendlyName : D:\
RecoverySourceName : D:\
ServerName : myserver.microsoft.com

復元元のバックアップ ポイントの選択

バックアップ ポイントの一覧は、Get-OBRecoverableItem コマンドレットと適切なパラメーターを実行して取得できます。 この例では、ソース ボリューム C: の最新のバックアップ ポイントを選択し、これを使用して特定のファイルを復旧します。

$Rps = Get-OBRecoverableItem $Source[0]
$Rps

IsDir                : False
ItemNameFriendly     : C:\
ItemNameGuid         : \\?\Volume{297cbf7a-0000-0000-0000-401f00000000}\
LocalMountPoint      : C:\
MountPointName       : C:\
Name                 : C:\
PointInTime          : 10/17/2019 7:52:13 PM
ServerName           : myserver.microsoft.com
ItemSize             :
ItemLastModifiedTime :

IsDir                : False
ItemNameFriendly     : C:\
ItemNameGuid         : \\?\Volume{297cbf7a-0000-0000-0000-401f00000000}\
LocalMountPoint      : C:\
MountPointName       : C:\
Name                 : C:\
PointInTime          : 10/16/2019 7:00:19 PM
ServerName           : myserver.microsoft.com
ItemSize             :
ItemLastModifiedTime :

オブジェクト $Rps は、バックアップ ポイントの配列です。 最初の要素は最新のポイントで、N 番目の要素は最も古いポイントです。 最新のポイントを選択するには、$Rps[0] を使用します。

復元する項目の指定

特定のファイルを復元するには、ルートボリュームに対して相対的なファイル名を指定します。 たとえば、C:\Test\Cat.job を取得するには、次のコマンドを実行します。

$Item = New-OBRecoverableItem $Rps[0] "Test\cat.jpg" $FALSE
$Item
IsDir                : False
ItemNameFriendly     : C:\Test\cat.jpg
ItemNameGuid         :
LocalMountPoint      : C:\
MountPointName       : C:\
Name                 : cat.jpg
PointInTime          : 10/17/2019 7:52:13 PM
ServerName           : myserver.microsoft.com
ItemSize             :
ItemLastModifiedTime : 21-Jun-14 6:43:02 AM

復元プロセスのトリガー

復元プロセスをトリガーするには、まず、回復オプションを指定する必要があります。 これを行うには、 New-OBRecoveryOption コマンドレットを使用します。 この例では、ファイルを C:\temp に復元すると仮定します。また、宛先フォルダー C:\temp に既に存在するファイルをスキップすると仮定します。こうした回復オプションを作成するには、次のコマンドを使用します。

$RecoveryOption = New-OBRecoveryOption -DestinationPath "C:\temp" -OverwriteType Skip

次に、Get-OBRecoverableItem コマンドレットの出力から選択した $ItemStart-OBRecovery コマンドを使用して復元プロセスをトリガーします。

Start-OBRecovery -RecoverableItem $Item -RecoveryOption $RecoveryOption
Estimating size of backup items...
Estimating size of backup items...
Estimating size of backup items...
Estimating size of backup items...
Job completed.
The recovery operation completed successfully.

リージョンをまたがる復元

リージョンをまたがる復元 (CRR) を使用すると、セカンダリ リージョン (Azure のペアのリージョン) から MARS バックアップ データを復元することができます。 これにより、監査とコンプライアンスの訓練を実施する、および災害が発生して Azure 内のプライマリ リージョンが利用できない間にデータを回復することができます。

元のサーバーの復元

セカンダリ リージョンから元のサーバーの復元 (リージョンをまたがる復元) を実行する場合は、OBRecoverableSource オブジェクトの取得中にフラグ UseSecondaryRegion を使用します。

$sources = Get-OBRecoverableSource -UseSecondaryRegion
$RP = Get-OBRecoverableItem -Source $sources[0]
$RO = New-OBRecoveryOption -DestinationPath $RecoveryPath -OverwriteType Overwrite
Start-OBRecovery -RecoverableItem $RP -RecoveryOption $RO -Async | ConvertTo-Json

代替サーバーの復元

セカンダリ リージョンから代替サーバーの復元 (リージョンをまたがる復元) を実行する場合は、Azure portal からセカンダリ リージョンのコンテナー資格情報ファイルをダウンロードし、復元のためにセカンダリ リージョンのコンテナー資格情報を渡します。

$serverName = ‘myserver.mycompany.com’
$secVaultCred = “C:\Users\myuser\Downloads\myvault_Mon Jul 17 2023.VaultCredentials”
$passphrase = ‘Default Passphrase’
$alternateServers = Get-OBAlternateBackupServer -VaultCredentials $secVaultCred
$altServer = $alternateServers[2] | Where-Object {$_.ServerName -Like $serverName}
$pwd = ConvertTo-SecureString -String $passphrase -AsPlainText -Force
$sources = Get-OBRecoverableSource $altServer
$RP = Get-OBRecoverableItem -Source $sources[0]
$RO = New-OBRecoveryOption
Start-OBRecoveryMount -RecoverableItem $RP -RecoveryOption $RO -EncryptionPassphrase $pwd  -Async | ConvertTo-Json 

Azure Backup エージェントのアンインストール

Microsoft Azure Backup エージェントのアンインストールは、次のコマンドを使用して実行できます。

.\MARSAgentInstaller.exe /d /q

エージェント バイナリをコンピューターからアンインストールすると、考慮すべき別の結果が生じます。

  • ファイル フィルターがコンピューターから削除され、変更の追跡が停止されます。
  • すべてのポリシー情報がコンピューターから削除されますが、ポリシー情報は引き続きサービスに格納されます。
  • すべてのバックアップ スケジュールが削除され、以降のバックアップは実施されません。

ただし、Azure に格納されたデータは、設定した保有ポリシーに基づいて維持されます。 古いポイントの期限は自動的に切れます。

リモート管理

Microsoft Azure Backup エージェント、ポリシー、およびデータ ソースに関する管理はすべて、PowerShell を使ってリモートで実行できます。 リモートで管理されるコンピューターは、適切に準備されている必要があります。

既定では、WinRM サービスは手動で開始されるように設定されています。 スタートアップの種類は "自動" に設定する必要があります。これにより、サービスが開始されます。 WinRM サービスが実行していることを確認するには、Status プロパティの値が [実行中] になっていることを確認します。

Get-Service -Name WinRM
Status   Name               DisplayName
------   ----               -----------
Running  winrm              Windows Remote Management (WS-Manag...

リモート処理用に PowerShell を構成します。

Enable-PSRemoting -Force
WinRM is already set up to receive requests on this computer.
WinRM has been updated for remote management.
WinRM firewall exception enabled.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force

コンピューターを、エージェントのインストールを始め、リモートで管理できるようになりました。 たとえば、次のスクリプトは、エージェントをリモート コンピューターにコピーし、インストールします。

$DLoc = "\\REMOTESERVER01\c$\Windows\Temp"
$Agent = "\\REMOTESERVER01\c$\Windows\Temp\MARSAgentInstaller.exe"
$Args = "/q"
Copy-Item "C:\Downloads\MARSAgentInstaller.exe" -Destination $DLoc -Force

$Session = New-PSSession -ComputerName REMOTESERVER01
Invoke-Command -Session $Session -Script { param($D, $A) Start-Process -FilePath $D $A -Wait } -ArgumentList $Agent, $Args

次のステップ

Windows Server/Windows クライアント用の Azure Backup の詳細については、次を参照してください。