使用 PowerShell 部署和管理 Windows Server/Windows 用戶端的 Azure 備份

本文會為您顯示如何使用 PowerShell 在 Windows Server 或 Windows 用戶端上設定 Azure 備份,以及管理備份和復原。

安裝 Azure PowerShell

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

若要開始使用,請安裝最新的 PowerShell 版本

建立復原服務保存庫

下列步驟將引導您完成建立復原服務保存庫。 復原服務保存庫不同於備份保存庫。

  1. 若您是第一次使用 Azure 備份,則必須使用 Register-AzResourceProvider Cmdlet,透過您的訂用帳戶註冊 Azure 復原服務提供者。

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  2. 復原服務保存庫是一項 Azure Resource Manager 資源,因此您必須將其放在資源群組內。 您可以使用現有的資源群組,或建立一個新的群組。 建立新的資源群組時,請指定資源群組的名稱和位置。

    New-AzResourceGroup –Name "test-rg" –Location "WestUS"
    
  3. 使用 New-AzRecoveryServicesVault Cmdlet 建立新的保存庫。 請務必為保存庫指定與用於資源群組相同的位置。

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName " test-rg" -Location "WestUS"
    
  4. 指定要使用的儲存空間備援類型。 您可以使用本地備援儲存體 (LRS)異地備援儲存體 (GRS)區域備援儲存體 (ZRS)。 下列範例顯示 testVault-BackupStorageRedundancy 選項設為 GeoRedundant 的情形。

    提示

    許多 Azure 備份 Cmdlet 都需要將復原服務保存庫物件當做輸入。 基於這個理由,將備份復原服務保存庫物件儲存在變數中會是方便的做法。

    $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 復原服務 (MARS) 代理程式版本相依於 Azure 存取控制服務。 MARS 代理程式也稱為 Azure 備份代理程式。

在 2018 年,Microsoft 已取代 Azure 存取控制服務。 從 2018 年 3 月 19 日開始,2.0.9083.0 以下的所有 MARS 代理程式版本會發生備份失敗情形。 若要避免或解決備份失敗,請將 MARS 代理程式升級至最新版本。 若要識別需要升級 MARS 代理程式的伺服器,請遵循升級 Microsoft Azure 復原服務 (MARS) 代理程式中的步驟。

MARS 代理程式用於將檔案、資料夾及系統狀態資料備份至 Azure。 System Center DPM 和 Azure 備份伺服器使用 MARS 代理程式來將資料備份至 Azure。

安裝 Azure 備份代理程式

在安裝 Azure 備份代理程式之前,您必須在 Windows Server 上下載並提供安裝程式。 您可以從 Microsoft 下載中心 或從復原服務保存庫的 [儀表板] 頁面取得最新版的安裝程式。 請將安裝程式儲存至容易存取的位置,例如 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 視窗以檢查是否有任何更新。 安裝之後,代理程式會顯示在已安裝的程式清單中。

若要查看已安裝的程式清單,請移至 [控制台]>[程式]>[程式和功能]

Agent installed

安裝選項

若要查看所有可透過命令列使用的選項,請使用下列命令:

MARSAgentInstaller.exe /?

可用的選項包括:

選項 詳細資料 預設
/q 無訊息安裝 -
/p:"location" Azure 備份代理程式的安裝資料夾路徑。 C:\Program Files\Microsoft Azure Recovery Services Agent
/s:"location" Azure 備份代理程式的快取資料夾路徑。 C:\Program Files\Microsoft Azure Recovery Services Agent\Scratch
/m 加入 Microsoft Update -
/nu 安裝完成後不要檢查更新 -
/d 解除安裝 Microsoft Azure 復原服務代理程式 -
/ph Proxy 主機位址 -
/po Proxy 主機連接埠號碼 -
/pu Proxy 主機使用者名稱 -
/pw Proxy 密碼 -

向復原服務保存庫註冊 Windows Server 或 Windows 用戶端電腦

建立復原服務保存庫之後,請下載最新版本的代理程式和保存庫認證,並將它們儲存在方便的位置 (如 C:\Downloads)。

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

使用 PowerShell Az 模組註冊

注意

在 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 Cmdlet 向保存庫註冊電腦。 此 Cmdlet 和其他用來進行備份的 Cmdlet 皆來自 MSONLINE 模組,MARS AgentInstaller 會在安裝程序中新增此模組。

AgentInstaller 不會更新 $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 Cmdlet 後,您必須註冊保存庫認證:

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

重要

請勿使用相對路徑來指定保存庫認證檔。 您必須提供絕對路徑做為 Cmdlet 的輸入。

網路設定

若 Windows 電腦是透過 Proxy 伺服器連線到網際網路,您也可以提供 Proxy 設定給代理程式。 此範例未使用 Proxy 伺服器,因此會明確地清除任何 Proxy 相關資訊。

您也可以針對給定的一組當週天數,使用 [work hour bandwidth] 和 [non-work hour bandwidth] 的選項來控制頻寬使用情形。

使用 Set-OBMachineSetting Cmdlet 即可設定 Proxy 和頻寬的詳細資料:

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

加密設定

傳送至 Azure 備份的備份資料會進行加密來保護資料的機密性。 加密複雜密碼是在還原時用來解密資料的「密碼」。

您必須在 Azure 入口網站 [復原服務保存庫] 區段中,選取 [設定]>[內容]>[安全性 PIN 碼] 底下的 [產生],以產生安全性 Pin 碼。

注意

安全性 PIN 碼只能透過 Azure 入口網站產生。

接著,在命令中使用此 PIN 碼作為 generatedPIN

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

重要

設定完成之後,請好好保管此複雜密碼資訊。 若沒有此複雜密碼,您將無法從 Azure 還原資料。

備份檔案和資料夾

Windows Server 和用戶端的所有 Azure 備份都是由原則來掌管。 原則包含三個部分:

  • 備份排程 ,指定何時進行備份並與服務同步。
  • 保留排程 可指定要在 Azure 中保留復原點多久時間。
  • 檔案包含/排除規格 ,指出要備份的項目。

本文件中要說明如何將備份自動化,因此我們假設還未設定任何選項。 一開始,請先使用 New-OBPolicy Cmdlet 建立新的備份原則。

$NewPolicy = New-OBPolicy

此時,原則是空的,需要使用其他 Cmdlet 來定義要包含或排除的項目、執行備份的時機,以及儲存備份的位置。

設定備份排程

原則三個部分的第一個部分是備份排程,這是使用 New-OBSchedule Cmdlet 建立的。 備份排程會定義何時需要進行備份。 建立排程時,您需要指定兩個輸入參數:

  • 星期幾 要執行備份。 您可以只選一天或選擇一週的每天都執行備份工作,或任意選取要一週的哪幾天。
  • 時段 。 您可以定義多達一天三個不同時段來觸發備份。

例如,您可以設定每週六和日下午 4 點執行備份原則。

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

備份排程需要與原則建立關聯,您可以使用 Set-OBSchedule Cmdlet 來達成。

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 Cmdlet 建立新的保留原則時,您可以使用 Azure 備份來指定要保留備份復原點的天數。 以下範例將保留原則設定為七天。

$RetentionPolicy = New-OBRetentionPolicy -RetentionDays 7

保留原則必須與主要原則建立關聯,方法為使用 Cmdlet 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 資料夾和任何暫存資料夾中的作業系統二進位檔。 若要這樣做,我們將使用 New-OBFileSpec Cmdlet 建立二個檔案規格:一個用於包含,另一個用於排除。 一旦建立檔案規格之後,再使用 Add-OBFileSpec Cmdlet 建立與原則的關聯。

$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

套用原則

現在原則物件已完成,且具有關聯的備份排程、保留原則及包含/排除的檔案清單。 此原則現在已經過認可,適合用於 Azure 備份。 套用新建立的原則之前,請使用 Remove-OBPolicy Cmdlet 確認沒有現有的備份原則與伺服器相關聯。 移除原則時,系統會提示確認。 若要略過確認,請使用 -Confirm:$false 旗標搭配 Cmdlet。

注意

執行 Cmdlet 時,如果其提示設定安全性 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 Cmdlet。 系統將提示您進行確認。 若要略過確認,請使用 -Confirm:$false 旗標搭配 Cmdlet。

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 Cmdlet 來檢視現有備份原則的詳細資料。 您可以使用 Get-OBSchedule Cmdlet (適用於備份排程) 和 Get-OBRetentionPolicy Cmdlet (適用於保留原則) 進一步向下鑽研

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 Cmdlet 來觸發隨選備份:

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

從 Azure 備份還原資料

本節將引導您逐步完成自動化從 Azure 備份復原資料。 此工作涉及下列步驟:

  1. 挑選來源磁碟區
  2. 選擇要還原的備份點
  3. 指定要還原的項目
  4. 觸發還原程序

挑選來源磁碟區

若要從 Azure 備份還原項目,您必須先識別項目的來源。 我們在 Windows Server 或 Windows 用戶端的內容中執行命令,則已經識別電腦。 找出來源的下一步是識別包含它的磁碟區。 執行 Get-OBRecoverableSource Cmdlet 可以擷取一份這部電腦所備份磁碟區或來源清單。 此命令會傳回這部伺服器/用戶端備份的所有來源陣列。

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

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

選擇要從中還原的備份點

您可以執行 Get-OBRecoverableItem Cmdlet 並搭配適當參數來擷取備份點清單。 在我們範例中,我們將選擇來源磁碟區 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 Cmdlet 可以完成這項工作。 在此範例中,我們假設要將檔案還原至 C:\temp。另外假設要略過已經存在於目的地資料夾 C:\temp 中的檔案。為了建立此復原選項,使用下列命令:

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

現在,從 Get-OBRecoverableItem Cmdlet 的輸出,在選取的 $Item 上使用 Start-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 入口網站下載 次要區域保存庫認證檔案,並傳遞次要區域保存庫認證以進行還原。

$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 備份代理程式

使用下列命令即可解除安裝 Azure 備份代理程式:

.\MARSAgentInstaller.exe /d /q

若要從電腦解除安裝代理程式二進位檔,請考量下列後果:

  • 這會從電腦移除檔案篩選器,並停止追蹤變更。
  • 會從電腦移除所有原則資訊,但服務中會繼續保存這些原則資訊。
  • 會移除所有備份排程,且不再進行任何備份。

不過,Azure 中儲存的資料會留著,根據您所設定的保留原則設定予以保留。 較舊的時間點會自動過時。

遠端管理

關於 Azure 備份代理程式、原則和資料來源的所有管理工作,皆可透過 PowerShell 遠端完成。 要遠端管理的電腦必須經過正確準備。

依預設,WinRM 服務會設定為手動啟動。 但您必須將啟動類型設定為 [ 自動 ],並應該啟動該服務。 若要驗證 WinRM 服務有在執行,[狀態] 屬性的值應該是 [ 執行中]。

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/用戶端的 Azure 備份詳細資訊: