Tworzenie kopii zapasowych i przywracanie maszyn wirtualnych platformy Azure przy użyciu programu Azure PowerShell

W tym artykule opisano sposób tworzenia kopii zapasowej i przywracania maszyny wirtualnej platformy Azure w magazynie usługi Azure Backup Recovery Services przy użyciu poleceń cmdlet programu PowerShell.

Usługa Azure Backup zapewnia niezależne i odizolowane kopie zapasowe zapewniające ochronę przed niezamierzonym zniszczeniem danych na maszynach wirtualnych. Kopie zapasowe są przechowywane w magazynie usługi Recovery Services z wbudowanymi funkcjami zarządzania punktami odzyskiwania. Konfiguracja i skalowanie są proste, kopie zapasowe są optymalizowane i w razie potrzeby można je łatwo przywrócić.

Zanim będzie można utworzyć kopię zapasową maszyny wirtualnej (lub zabezpieczyć ją), należy spełnić wymagania wstępne w celu przygotowania środowiska na potrzeby ochrony maszyn wirtualnych.

Przed rozpoczęciem

  • Dowiedz się więcej o magazynach usługi Recovery Services.
  • Zapoznaj się z architekturą kopii zapasowej maszyny wirtualnej platformy Azure, dowiedz się więcej na temat procesu tworzenia kopii zapasowych i przejrzyj informacje o obsłudze, ograniczeniach i wymaganiach wstępnych.
  • Przejrzyj hierarchię obiektów programu PowerShell dla usług Recovery Services.

Hierarchia obiektów usługi Recovery Services

Hierarchia obiektów jest podsumowana na poniższym diagramie.

Disgram shows the Recovery Services object hierarchy.

Zapoznaj się z dokumentacją poleceń cmdlet az.RecoveryServicesw bibliotece platformy Azure.

Konfigurowanie i rejestrowanie

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Aby rozpocząć:

  1. Pobieranie najnowszej wersji programu PowerShell

  2. Znajdź dostępne polecenia cmdlet programu PowerShell usługi Azure Backup, wpisując następujące polecenie:

    Get-Command *azrecoveryservices*
    

    Wyświetlane są aliasy i polecenia cmdlet usługi Azure Backup, Azure Site Recovery i magazyn usługi Recovery Services. Na poniższej ilustracji przedstawiono przykład tego, co zobaczysz. Nie jest to pełna lista poleceń cmdlet.

    Screenshot shows the list of Recovery Services.

  3. Zaloguj się do konta platformy Azure przy użyciu polecenia Połączenie-AzAccount. To polecenie cmdlet powoduje wyświetlenie strony internetowej z monitem o podanie poświadczeń konta:

    • Alternatywnie możesz dołączyć poświadczenia konta jako parametr w poleceniu cmdlet Połączenie-AzAccount przy użyciu parametru -Credential.
    • Jeśli jesteś partnerem CSP pracującym w imieniu dzierżawy, określ klienta jako dzierżawę przy użyciu identyfikatora dzierżawy lub podstawowej nazwy domeny dzierżawy. Na przykład: Połączenie-AzAccount -Tenant "fabrikam.com"
  4. Skojarz subskrypcję, której chcesz używać z kontem, ponieważ konto może mieć kilka subskrypcji:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  5. Jeśli używasz usługi Azure Backup po raz pierwszy, musisz użyć polecenia cmdlet Register-AzResourceProvider , aby zarejestrować dostawcę usługi Azure Recovery Service w ramach subskrypcji.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  6. Możesz sprawdzić, czy dostawcy zarejestrowali się pomyślnie, używając następujących poleceń:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    

    W danych wyjściowych polecenia wartość RegistrationState powinna zostać zmieniona na Zarejestrowano. Jeśli nie, uruchom ponownie polecenie cmdlet Register-AzResourceProvider.

Tworzenie magazynu usługi Recovery Services

Poniższe kroki prowadzą do utworzenia magazynu usługi Recovery Services. Magazyn usługi Recovery Services różni się od magazynu usługi Backup.

  1. Magazyn usługi Recovery Services jest zasobem usługi Resource Manager, dlatego należy umieścić go w grupie zasobów. Możesz użyć istniejącej grupy zasobów lub utworzyć grupę zasobów za pomocą polecenia cmdlet New-AzResourceGroup. Podczas tworzenia grupy zasobów określ nazwę i lokalizację grupy zasobów.

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. Użyj polecenia cmdlet New-AzRecoveryServicesVault, aby utworzyć magazyn usługi Recovery Services. Pamiętaj, aby określić tę samą lokalizację magazynu, która została użyta dla grupy zasobów.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    
  3. Określ typ nadmiarowości magazynu do użycia. Możesz użyć magazynu lokalnie nadmiarowego (LRS), magazynu geograficznie nadmiarowego (GRS) lub magazynu strefowo nadmiarowego (ZRS). W poniższym przykładzie przedstawiono opcję -BackupStorageRedundancy ustawioną na testvault GeoRedundant.

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

    Napiwek

    Wiele poleceń cmdlet usługi Azure Backup wymaga obiektu magazynu usługi Recovery Services jako danych wejściowych. Z tego powodu wygodnie jest przechowywać obiekt magazynu usługi Backup Recovery Services w zmiennej.

Wyświetlanie magazynów w subskrypcji

Aby wyświetlić wszystkie magazyny w subskrypcji, użyj polecenia Get-AzRecoveryServicesVault:

Get-AzRecoveryServicesVault

Dane wyjściowe są podobne do poniższego przykładu. Zwróć uwagę, że podano skojarzone wartości ResourceGroupName i Location.

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

Tworzenie kopii zapasowych maszyn wirtualnych platformy Azure

Użyj magazynu usługi Recovery Services, aby chronić maszyny wirtualne. Przed zastosowaniem ochrony ustaw kontekst magazynu (typ danych chronionych w magazynie) i sprawdź zasady ochrony. Zasady ochrony to harmonogram uruchamiania zadań tworzenia kopii zapasowej oraz czas przechowywania każdej migawki kopii zapasowej.

Ustawianie kontekstu magazynu

Przed włączeniem ochrony na maszynie wirtualnej użyj polecenia Set-AzRecoveryServicesVaultContext , aby ustawić kontekst magazynu. Po ustawieniu kontekst magazynu ma zastosowanie do wszystkich kolejnych poleceń cmdlet. W poniższym przykładzie ustawiono kontekst magazynu dla magazynu . testvault

Get-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "Contoso-docs-rg" | Set-AzRecoveryServicesVaultContext

Pobieranie identyfikatora magazynu

Planujemy wycofanie ustawienia kontekstu magazynu zgodnie z wytycznymi programu Azure PowerShell. Zamiast tego możesz przechowywać lub pobierać identyfikator magazynu i przekazywać go do odpowiednich poleceń. Jeśli więc nie ustawiono kontekstu magazynu lub chcesz określić polecenie do uruchomienia dla określonego magazynu, przekaż identyfikator magazynu jako "-vaultID" do wszystkich odpowiednich poleceń w następujący sposób:

$targetVault = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault"
$targetVault.ID

Or

$targetVaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID

Modyfikowanie ustawień replikacji magazynu

Użyj polecenia Set-AzRecoveryServicesBackupProperty , aby ustawić konfigurację replikacji magazynu na LRS/GRS

Set-AzRecoveryServicesBackupProperty -Vault $targetVault -BackupStorageRedundancy GeoRedundant/LocallyRedundant

Uwaga

Nadmiarowość magazynu można modyfikować tylko wtedy, gdy do magazynu nie są chronione żadne elementy kopii zapasowej.

Tworzenie zasad ochrony

Podczas tworzenia magazynu usługi Recovery Services jest on dostarczany z domyślnymi zasadami ochrony i przechowywania. Domyślne zasady ochrony wyzwalają zadanie tworzenia kopii zapasowej każdego dnia o określonej godzinie. Domyślne zasady przechowywania zachowują codzienny punkt odzyskiwania przez 30 dni. Możesz użyć domyślnych zasad, aby szybko chronić maszynę wirtualną i edytować zasady później przy użyciu różnych szczegółów.

Użyj polecenia Get-AzRecoveryServicesBackupProtectionPolicy , aby wyświetlić zasady ochrony dostępne w magazynie. Możesz użyć tego polecenia cmdlet, aby uzyskać określone zasady lub wyświetlić zasady skojarzone z typem obciążenia. Poniższy przykład pobiera zasady dla typu obciążenia AzureVM.

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID

Dane wyjściowe są podobne do poniższego przykładu:

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

Uwaga

Strefa czasowa pola BackupTime w programie PowerShell to UTC. Jednak po wyświetleniu czasu tworzenia kopii zapasowej w witrynie Azure Portal czas jest dostosowywany do lokalnej strefy czasowej.

Zasady ochrony kopii zapasowych są skojarzone z co najmniej jedną zasadą przechowywania. Zasady przechowywania określają czas przechowywania punktu odzyskiwania przed jego usunięciem.

Domyślnie czas rozpoczęcia jest definiowany w obiekcie zasad harmonogramu. Użyj poniższego przykładu, aby zmienić godzinę rozpoczęcia na żądany czas rozpoczęcia. Żądany czas rozpoczęcia powinien również znajdować się w formacie UTC. W poniższym przykładzie przyjęto założenie, że żądany czas rozpoczęcia to 01:00 CZASU UTC dla codziennych kopii zapasowych.

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

Ważne

Musisz podać czas rozpoczęcia tylko w 30 minutach wielokrotnych. W powyższym przykładzie może to być tylko "01:00:00" lub "02:30:00". Godzina rozpoczęcia nie może być "01:15:00"

W poniższym przykładzie są przechowywane zasady harmonogramu i zasady przechowywania w zmiennych. W przykładzie użyto tych zmiennych do zdefiniowania parametrów podczas tworzenia zasad ochrony NewPolicy.

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

Dane wyjściowe są podobne do poniższego przykładu:

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

Włączanie ochrony

Po zdefiniowaniu zasad ochrony nadal musisz włączyć zasady dla elementu. Aby włączyć ochronę, użyj polecenia Enable-AzRecoveryServicesBackupProtection . Włączenie ochrony wymaga dwóch obiektów — elementu i zasad. Po skojarzeniu zasad z magazynem przepływ pracy tworzenia kopii zapasowej jest wyzwalany w czasie zdefiniowanym w harmonogramie zasad.

Ważne

Podczas korzystania z programu PowerShell w celu włączenia tworzenia kopii zapasowych dla wielu maszyn wirtualnych jednocześnie upewnij się, że z jedną zasadą nie jest skojarzonych więcej niż 100 maszyn wirtualnych. Jest to zalecane najlepsze rozwiązanie. Obecnie klient programu PowerShell nie blokuje jawnie, jeśli istnieje więcej niż 100 maszyn wirtualnych, ale sprawdzanie ma zostać dodane w przyszłości.

Poniższe przykłady umożliwiają ochronę elementu V2VM przy użyciu zasad NewPolicy. Przykłady różnią się w zależności od tego, czy maszyna wirtualna jest szyfrowana, i jakiego typu szyfrowanie.

Aby włączyć ochronę na nieszyfrowanych maszynach wirtualnych usługi Resource Manager:

$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID

Aby włączyć ochronę zaszyfrowanych maszyn wirtualnych (zaszyfrowanych przy użyciu klucza szyfrowania kluczy i klucza szyfrowania kluczy), musisz przyznać usłudze Azure Backup uprawnienie do odczytu kluczy i wpisów tajnych z magazynu kluczy.

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

Aby włączyć ochronę na zaszyfrowanych maszynach wirtualnych (zaszyfrowanych tylko przy użyciu klucza szyfrowania kluczy), musisz przyznać usłudze Azure Backup uprawnienie do odczytu wpisów tajnych z magazynu kluczy.

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

Uwaga

Jeśli używasz chmury Azure Government, użyj wartości ff281ffe-705c-4f53-9f37-a40e6f2c68f3 parametru ServicePrincipalName w poleceniu cmdlet Set-AzKeyVaultAccessPolicy .

Jeśli chcesz selektywnie utworzyć kopię zapasową kilku dysków i wykluczyć inne, jak wspomniano w tych scenariuszach, możesz skonfigurować ochronę i utworzyć kopię zapasową tylko odpowiednich dysków zgodnie z opisem tutaj.

Monitorowanie zadania tworzenia kopii zapasowej

Można monitorować długotrwałe operacje, takie jak zadania tworzenia kopii zapasowej, bez korzystania z witryny Azure Portal. Aby uzyskać stan zadania w toku, użyj polecenia cmdlet Get-AzRecoveryservicesBackupJob . To polecenie cmdlet pobiera zadania tworzenia kopii zapasowej dla określonego magazynu i ten magazyn jest określony w kontekście magazynu. Poniższy przykład pobiera stan zadania w toku jako tablicę i przechowuje stan w zmiennej $joblist.

$joblist = Get-AzRecoveryservicesBackupJob –Status "InProgress" -VaultId $targetVault.ID
$joblist[0]

Dane wyjściowe są podobne do poniższego przykładu:

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

Zamiast sondowania tych zadań pod kątem ukończenia — co jest niepotrzebnym dodatkowym kodem — użyj polecenia cmdlet Wait-AzRecoveryServicesBackupJob . To polecenie cmdlet wstrzymuje wykonywanie do momentu zakończenia zadania lub osiągnięcia określonej wartości limitu czasu.

Wait-AzRecoveryServicesBackupJob -Job $joblist[0] -Timeout 43200 -VaultId $targetVault.ID

Zarządzanie kopiami zapasowymi maszyn wirtualnych platformy Azure

Modyfikowanie zasad ochrony

Aby zmodyfikować zasady ochrony, użyj polecenia Set-AzRecoveryServicesBackupProtectionPolicy, aby zmodyfikować obiekty SchedulePolicy lub RetentionPolicy.

Modyfikowanie zaplanowanego czasu

Podczas tworzenia zasad ochrony jest on domyślnie przypisany do godziny rozpoczęcia. W poniższych przykładach pokazano, jak zmodyfikować godzinę rozpoczęcia zasad ochrony.

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

Modyfikowanie przechowywania

Poniższy przykład zmienia przechowywanie punktu odzyskiwania na 365 dni.

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

Konfigurowanie przechowywania migawek natychmiastowego przywracania

Uwaga

W programie Azure PowerShell w wersji 1.6.0 można zaktualizować okres przechowywania migawki natychmiastowego przywracania w zasadach przy użyciu programu PowerShell

$bkpPol = Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID
$bkpPol.SnapshotRetentionInDays=7
Set-AzRecoveryServicesBackupProtectionPolicy -policy $bkpPol -VaultId $targetVault.ID

Wartość domyślna to 2. Można ustawić wartość z co najmniej 1 i maksymalnie 5. W przypadku cotygodniowych zasad tworzenia kopii zapasowych okres jest ustawiony na 5 i nie można go zmienić.

Tworzenie grupy zasobów usługi Azure Backup podczas przechowywania migawek

Uwaga

W programie Azure PowerShell w wersji 3.7.0 można utworzyć i edytować grupę zasobów utworzoną do przechowywania migawek błyskawicznych.

Aby dowiedzieć się więcej na temat reguł tworzenia grup zasobów i innych istotnych szczegółów, zapoznaj się z dokumentacją usługi Azure Backup dla maszyn wirtualnych.

$bkpPol = Get-AzureRmRecoveryServicesBackupProtectionPolicy -name "DefaultPolicyForVMs"
$bkpPol.AzureBackupRGName="Contosto_"
$bkpPol.AzureBackupRGNameSuffix="ForVMs"
Set-AzureRmRecoveryServicesBackupProtectionPolicy -policy $bkpPol

Wykluczanie dysków dla chronionej maszyny wirtualnej

Kopia zapasowa maszyny wirtualnej platformy Azure umożliwia selektywne wykluczanie lub dołączanie dysków, które są przydatne w tych scenariuszach. Jeśli maszyna wirtualna jest już chroniona przez kopię zapasową maszyny wirtualnej platformy Azure i jeśli kopia zapasowa wszystkich dysków jest tworzona, możesz zmodyfikować ochronę, aby selektywnie dołączać lub wykluczać dyski, jak wspomniano tutaj.

Wyzwalanie kopii zapasowej

Użyj polecenia Backup-AzRecoveryServicesBackupItem , aby wyzwolić zadanie tworzenia kopii zapasowej. Jeśli jest to początkowa kopia zapasowa, jest to pełna kopia zapasowa. Kolejne kopie zapasowe przyjmują kopię przyrostową. W poniższym przykładzie kopia zapasowa maszyny wirtualnej jest przechowywana przez 60 dni.

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

Dane wyjściowe są podobne do poniższego przykładu:

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

Uwaga

Strefa czasowa pól StartTime i EndTime w programie PowerShell to UTC. Jednak gdy czas jest wyświetlany w witrynie Azure Portal, czas jest dostosowywany do lokalnej strefy czasowej.

Zmienianie zasad dla elementów kopii zapasowych

Istniejące zasady można zmodyfikować lub zmienić zasady elementu kopii zapasowej z Policy1 na Policy2. Aby przełączyć zasady dla elementu kopii zapasowej, pobierz odpowiednie zasady i utwórz kopię zapasową elementu i użyj polecenia Enable-AzRecoveryServices z elementem kopii zapasowej jako parametrem.

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

Polecenie czeka na zakończenie konfigurowania kopii zapasowej i zwraca następujące dane wyjściowe.

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

Zatrzymywanie ochrony

Zachowywanie danych

Jeśli chcesz zatrzymać ochronę, możesz użyć polecenia cmdlet Disable-AzRecoveryServicesBackupProtection programu PowerShell. Spowoduje to zatrzymanie zaplanowanych kopii zapasowych, ale kopie zapasowe danych będą przechowywane na zawsze.

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

Wznów tworzenie kopii zapasowej

Jeśli ochrona zostanie zatrzymana i dane kopii zapasowej zostaną zachowane, możesz wznowić ochronę jeszcze raz. Musisz przypisać zasady dla odnowionej ochrony. Polecenie cmdlet jest takie samo jak w przypadku zasad zmiany elementów kopii zapasowej.

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

Usuwanie danych kopii zapasowej

Aby całkowicie usunąć przechowywane dane kopii zapasowej w magazynie, dodaj flagę "-RemoveRecoveryPoints" /przełącz się do polecenia ochrony "disable".

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

Przywracanie maszyny wirtualnej platformy Azure

Istnieje ważna różnica między przywracaniem maszyny wirtualnej przy użyciu witryny Azure Portal i przywracaniem maszyny wirtualnej przy użyciu programu PowerShell. W programie PowerShell operacja przywracania jest wykonywana po utworzeniu dysków i informacji o konfiguracji z punktu odzyskiwania. Operacja przywracania nie tworzy maszyny wirtualnej. Aby utworzyć maszynę wirtualną na podstawie dysku, zobacz sekcję Tworzenie maszyny wirtualnej na podstawie przywróconych dysków. Jeśli nie chcesz przywrócić całej maszyny wirtualnej, ale chcesz przywrócić lub odzyskać kilka plików z kopii zapasowej maszyny wirtualnej platformy Azure, zapoznaj się z sekcją odzyskiwania plików.

Napiwek

Operacja przywracania nie tworzy maszyny wirtualnej.

Poniższa ilustracja przedstawia hierarchię obiektów z RecoveryServicesVault dołu do .BackupRecoveryPoint

Screenshot shows the BackupContainer listed by Recovery Services object hierarchy.

Aby przywrócić dane kopii zapasowej, zidentyfikuj element kopii zapasowej i punkt odzyskiwania zawierający dane punktu w czasie. Użyj polecenia Restore-AzRecoveryServicesBackupItem , aby przywrócić dane z magazynu do konta.

Podstawowe kroki przywracania maszyny wirtualnej platformy Azure to:

  • Wybierz maszynę wirtualną.
  • Wybierz punkt odzyskiwania.
  • Przywróć dyski.
  • Utwórz maszynę wirtualną na podstawie przechowywanych dysków.

Teraz możesz również użyć programu PowerShell, aby bezpośrednio przywrócić zawartość kopii zapasowej do maszyny wirtualnej (oryginalna/nowa), bez wykonywania powyższych kroków oddzielnie. Aby uzyskać więcej informacji, zobacz Przywracanie danych do maszyny wirtualnej przy użyciu programu PowerShell.

Wybierz maszynę wirtualną (podczas przywracania plików)

Aby uzyskać obiekt programu PowerShell, który identyfikuje odpowiedni element kopii zapasowej, zacznij od kontenera w magazynie i pracuj w dół hierarchii obiektów. Aby wybrać kontener reprezentujący maszynę wirtualną, użyj polecenia cmdlet Get-AzRecoveryServicesBackupContainer i potoku do polecenia cmdlet Get-AzRecoveryServicesBackupItem .

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

Wybierz punkt odzyskiwania (podczas przywracania plików)

Użyj polecenia cmdlet Get-AzRecoveryServicesBackupRecoveryPoint, aby wyświetlić listę wszystkich punktów odzyskiwania dla elementu kopii zapasowej. Następnie wybierz punkt odzyskiwania do przywrócenia. Jeśli nie masz pewności, który punkt odzyskiwania ma być używany, dobrym rozwiązaniem jest wybranie najnowszego elementu RecoveryPointType = AppConsistent point na liście.

W poniższym skryscie zmienna, $rp, jest tablicą punktów odzyskiwania dla wybranego elementu kopii zapasowej z ostatnich siedmiu dni. Tablica jest sortowana w odwrotnej kolejności czasu z najnowszym punktem odzyskiwania w indeksie 0. Użyj standardowego indeksowania tablic programu PowerShell, aby wybrać punkt odzyskiwania. W tym przykładzie $rp[0] wybiera najnowszy punkt odzyskiwania.

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

Dane wyjściowe są podobne do poniższego przykładu:

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

Przywracanie dysków

Użyj polecenia cmdlet Restore-AzRecoveryServicesBackupItem, aby przywrócić dane i konfigurację elementu kopii zapasowej do punktu odzyskiwania. Po zidentyfikowaniu punktu odzyskiwania użyj go jako wartości parametru -RecoveryPoint . W powyższym przykładzie $rp[0] był punktem odzyskiwania do użycia. W poniższym przykładowym kodzie $rp[0] jest punktem odzyskiwania używanym do przywracania dysku.

Aby przywrócić dyski i informacje o konfiguracji:

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

Przywracanie dysków zarządzanych

Uwaga

Jeśli utworzona maszyna wirtualna ma dyski zarządzane i chcesz przywrócić je jako dyski zarządzane, wprowadziliśmy możliwość modułu RM programu Azure PowerShell w wersji 6.7.0. do wewnątrz.

Podaj dodatkowy parametr TargetResourceGroupName , aby określić grupę zasobów, do której zostaną przywrócone dyski zarządzane.

Ważne

Zdecydowanie zaleca się użycie parametru TargetResourceGroupName do przywracania dysków zarządzanych, ponieważ powoduje to znaczne zwiększenie wydajności. Jeśli ten parametr nie zostanie podany, nie możesz skorzystać z funkcji natychmiastowego przywracania, a operacja przywracania będzie wolniejsza w porównaniu. Jeśli celem jest przywrócenie dysków zarządzanych jako dysków niezarządzanych, nie podaj tego parametru i wyjaśnij intencję -RestoreAsUnmanagedDisks , podając parametr . Parametr -RestoreAsUnmanagedDisks jest dostępny w programie Azure PowerShell 3.7.0. W przyszłych wersjach konieczne będzie podanie jednego z tych parametrów dla odpowiedniego środowiska przywracania.

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

Plik VMConfig.JSON zostanie przywrócony do konta magazynu, a dyski zarządzane zostaną przywrócone do określonej docelowej grupy zasobów.

Dane wyjściowe są podobne do poniższego przykładu:

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

Użyj polecenia cmdlet Wait-AzRecoveryServicesBackupJob, aby poczekać na zakończenie zadania przywracania.

Wait-AzRecoveryServicesBackupJob -Job $restorejob -Timeout 43200

Po zakończeniu zadania przywracania użyj polecenia cmdlet Get-AzRecoveryServicesBackupJobDetail , aby uzyskać szczegółowe informacje o operacji przywracania. Właściwość JobDetails zawiera informacje potrzebne do ponownego skompilowania maszyny wirtualnej.

$restorejob = Get-AzRecoveryServicesBackupJob -Job $restorejob -VaultId $targetVault.ID
$details = Get-AzRecoveryServicesBackupJobDetail -Job $restorejob -VaultId $targetVault.ID

Przywracanie dysków przy użyciu tożsamości zarządzanej

Usługa Azure Backup umożliwia również używanie tożsamości zarządzanej (MSI) podczas operacji przywracania w celu uzyskania dostępu do kont magazynu, na których należy przywrócić dyski. Ta opcja jest obecnie obsługiwana tylko w przypadku przywracania dysku zarządzanego.

Jeśli chcesz użyć przypisanej przez system tożsamości zarządzanej magazynu do przywrócenia dysków, przekaż dodatkową flagę -UseSystemAssignedIdentity do polecenia Restore-AzRecoveryServicesBackupItem. Jeśli chcesz użyć tożsamości zarządzanej przypisanej przez użytkownika, przekaż parametr -UserAssignedIdentityId z identyfikatorem usługi Azure Resource Manager tożsamości zarządzanej magazynu jako wartością parametru. Zapoznaj się z tym artykułem, aby dowiedzieć się, jak włączyć tożsamość zarządzaną dla magazynów.

Przywracanie dysków selektywnych

Użytkownik może selektywnie przywrócić kilka dysków zamiast całej konfiguracji kopii zapasowej. Podaj wymagane jednostki LUN dysku jako parametr, aby przywrócić je tylko zamiast całego zestawu, jak opisano tutaj.

Ważne

Należy selektywnie tworzyć kopie zapasowe dysków w celu selektywnego przywracania dysków. Więcej szczegółów znajduje się tutaj.

Po przywróceniu dysków przejdź do następnej sekcji, aby utworzyć maszynę wirtualną.

Przywracanie dysków do regionu pomocniczego

Jeśli przywracanie między regionami jest włączone w magazynie, za pomocą którego chronione są maszyny wirtualne, dane kopii zapasowej są replikowane do regionu pomocniczego. Możesz użyć danych kopii zapasowej do wykonania przywracania. Wykonaj następujące kroki, aby wyzwolić przywracanie w regionie pomocniczym:

  1. Pobierz identyfikator magazynu, za pomocą którego maszyny wirtualne są chronione.

  2. Wybierz prawidłowy element kopii zapasowej do przywrócenia.

  3. Wybierz odpowiedni punkt odzyskiwania w regionie pomocniczym, którego chcesz użyć do wykonania przywracania.

    Aby wykonać ten krok, uruchom następujące polecenie:

    $rp=Get-AzRecoveryServicesBackupRecoveryPoint -UseSecondaryRegion -Item $backupitem -VaultId $targetVault.ID
    $rp=$rp[0]
    
  4. Wykonaj polecenie cmdlet Restore-AzRecoveryServicesBackupItem z parametrem -RestoreToSecondaryRegion , aby wyzwolić przywracanie w regionie pomocniczym.

    Aby wykonać ten krok, uruchom następujące polecenie:

    $restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID -VaultLocation $targetVault.Location -RestoreToSecondaryRegion -RestoreOnlyOSDisk
    

    Dane wyjściowe będą mieć postać podobną do następującej:

    WorkloadName     Operation             Status              StartTime                 EndTime          JobID
    ------------     ---------             ------              ---------                 -------          ----------
    V2VM             CrossRegionRestore   InProgress           4/23/2016 5:00:30 PM                       cf4b3ef5-2fac-4c8e-a215-d2eba4124f27
    
  5. Wykonaj polecenie cmdlet Get-AzRecoveryServicesBackupJob z parametrem -UseSecondaryRegion , aby monitorować zadanie przywracania.

    Aby wykonać ten krok, uruchom następujące polecenie:

    Get-AzRecoveryServicesBackupJob -From (Get-Date).AddDays(-7).ToUniversalTime() -To (Get-Date).ToUniversalTime() -UseSecondaryRegion -VaultId $targetVault.ID
    

    Dane wyjściowe będą mieć postać podobną do następującej:

    WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
    ------------     ---------            ------               ---------                 -------                   -----
    V2VM             CrossRegionRestore   InProgress           2/8/2021 4:24:57 PM                                 2d071b07-8f7c-4368-bc39-98c7fb2983f7
    

Przywracanie między strefami

Możesz przywrócić przypięte maszyny wirtualne strefy platformy Azure w dowolnych strefach dostępności w tym samym regionie.

Aby przywrócić maszynę wirtualną do innej strefy, określ TargetZoneNumber parametr w poleceniu cmdlet Restore-AzRecoveryServicesBackupItem .

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -VaultId $targetVault.ID -TargetZoneNumber 3

Dane wyjściowe będą mieć postać podobną do następującej:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
zonevmeus2       Restore              InProgress           1/3/2022 10:27:20 AM                                b2298...

Przywracanie między strefami jest obsługiwane tylko w scenariuszach, w których:

  • Źródłowa maszyna wirtualna jest przypięta strefą i nie jest szyfrowana.
  • Punkt odzyskiwania znajduje się tylko w warstwie magazynu. Migawki lub tylko migawki i warstwa magazynu nie są obsługiwane.
  • Opcja odzyskiwania polega na utworzeniu nowej maszyny wirtualnej lub przywróceniu dysków. Zamień opcję dysków zastępuje dane źródłowe; w związku z tym opcja strefy dostępności nie ma zastosowania.
  • Tworzenie maszyn wirtualnych/dysków w tym samym regionie, gdy nadmiarowość magazynu to ZRS. Należy pamiętać, że nie działa, jeśli nadmiarowość magazynu to GRS, mimo że źródłowa maszyna wirtualna jest przypięta strefą.
  • Tworzenie maszyn wirtualnych/dysków w sparowanym regionie, gdy nadmiarowość magazynu jest włączona na potrzeby przywracania między regionami i jeśli sparowany region obsługuje strefy.

Zastępowanie dysków na maszynie wirtualnej platformy Azure

Aby zastąpić dyski i informacje o konfiguracji, wykonaj następujące kroki:

Tworzenie maszyny wirtualnej na podstawie przywróconych dysków

Po przywróceniu dysków wykonaj następujące kroki, aby utworzyć i skonfigurować maszynę wirtualną z dysku.

Uwaga

  1. Wymagany jest moduł AzureAz w wersji 3.0.0 lub nowszej.
  2. Aby utworzyć zaszyfrowane maszyny wirtualne z przywróconych dysków, rola platformy Azure musi mieć uprawnienia do wykonania akcji Microsoft.KeyVault/vaults/deploy/action. Jeśli twoja rola nie ma tego uprawnienia, utwórz rolę niestandardową za pomocą tej akcji. Aby uzyskać więcej informacji, zobacz Role niestandardowe platformy Azure.
  3. Po przywróceniu dysków można teraz uzyskać szablon wdrożenia, którego można użyć bezpośrednio do utworzenia nowej maszyny wirtualnej. YOu nie potrzebują różnych poleceń cmdlet programu PowerShell do tworzenia zarządzanych/niezarządzanych maszyn wirtualnych, które są szyfrowane/niezaszyfrowane.

Tworzenie maszyny wirtualnej przy użyciu szablonu wdrożenia

Wynikowe szczegóły zadania zawierają identyfikator URI szablonu, który można wykonywać zapytania i wdrażać.

   $properties = $details.properties
   $storageAccountName = $properties["Target Storage Account Name"]
   $containerName = $properties["Config Blob Container Name"]
   $templateBlobURI = $properties["Template Blob Uri"]

Szablon nie jest dostępny bezpośrednio, ponieważ znajduje się on na koncie magazynu klienta i danym kontenerze. Aby uzyskać dostęp do tego szablonu, potrzebujemy kompletnego adresu URL (wraz z tymczasowym tokenem SAS).

  1. Najpierw wyodrębnij nazwę szablonu z identyfikatora templateBlobURI. Format został wymieniony poniżej. Możesz użyć operacji dzielenia w programie PowerShell, aby wyodrębnić końcową nazwę szablonu z tego adresu URL.

    https://<storageAccountName.blob.core.windows.net>/<containerName>/<templateName>
    
  2. Następnie można wygenerować pełny adres URL, jak wyjaśniono tutaj.

    Set-AzCurrentStorageAccount -Name $storageAccountName -ResourceGroupName <StorageAccount RG name>
    $templateBlobFullURI = New-AzStorageBlobSASToken -Container $containerName -Blob <templateName> -Permission r -FullUri
    
  3. Wdróż szablon, aby utworzyć nową maszynę wirtualną zgodnie z opisem w tym miejscu.

    New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup -TemplateUri $templateBlobFullURI
    

Tworzenie maszyny wirtualnej przy użyciu pliku konfiguracji

W poniższej sekcji wymieniono kroki niezbędne do utworzenia maszyny wirtualnej przy użyciu VMConfig pliku.

Uwaga

Zdecydowanie zaleca się użycie szablonu wdrożenia opisanego powyżej w celu utworzenia maszyny wirtualnej. Ta sekcja (punkty 1–6) wkrótce zostanie wycofana.

  1. Wykonaj zapytanie o przywrócone właściwości dysku, aby uzyskać szczegółowe informacje o zadaniu.

    $properties = $details.properties
    $storageAccountName = $properties["Target Storage Account Name"]
    $containerName = $properties["Config Blob Container Name"]
    $configBlobName = $properties["Config Blob Name"]
    
  2. Ustaw kontekst usługi Azure Storage i przywróć plik konfiguracji JSON.

    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. Użyj pliku konfiguracji JSON, aby utworzyć konfigurację maszyny wirtualnej.

    $vm = New-AzVMConfig -VMSize $obj.'properties.hardwareProfile'.vmSize -VMName "testrestore"
    
  4. Dołącz dysk systemu operacyjnego i dyski danych. Ten krok zawiera przykłady różnych konfiguracji zarządzanych i zaszyfrowanych maszyn wirtualnych. Użyj przykładu, który odpowiada konfiguracji maszyny wirtualnej.

    • Maszyny wirtualne niezarządzane i niezaszyfrowane — użyj następującego przykładu dla maszyn wirtualnych niezarządzanych, niezaszyfrowanych.
        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"
        }
    
    • Maszyny wirtualne niezarządzane i zaszyfrowane przy użyciu identyfikatora Entra firmy Microsoft (tylko klucz szyfrowania kluczy) — w przypadku niezarządzanych, zaszyfrowanych maszyn wirtualnych z identyfikatorem Entra firmy Microsoft (zaszyfrowanych tylko przy użyciu klucza BEK) należy przywrócić wpis tajny do magazynu kluczy przed dołączeniem dysków. Aby uzyskać więcej informacji, zobacz Przywracanie zaszyfrowanej maszyny wirtualnej z punktu odzyskiwania usługi Azure Backup. W poniższym przykładzie pokazano, jak dołączyć dyski systemu operacyjnego i danych dla zaszyfrowanych maszyn wirtualnych. Podczas ustawiania dysku systemu operacyjnego pamiętaj o odpowiednim typie systemu operacyjnego.
        $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"
        }
    
    • Niezarządzane i zaszyfrowane maszyny wirtualne z identyfikatorem Entra firmy Microsoft (BEK i KEK) — w przypadku niezarządzanych, zaszyfrowanych maszyn wirtualnych z identyfikatorem Entra firmy Microsoft (zaszyfrowanym przy użyciu klucza BEK i KEK) przywróć klucz i wpis tajny do magazynu kluczy przed dołączeniem dysków. Aby uzyskać więcej informacji, zobacz Przywracanie zaszyfrowanej maszyny wirtualnej z punktu odzyskiwania usługi Azure Backup. W poniższym przykładzie pokazano, jak dołączyć dyski systemu operacyjnego i danych dla zaszyfrowanych maszyn wirtualnych.
        $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"
        }
    
    • Niezarządzane i zaszyfrowane maszyny wirtualne bez identyfikatora entra firmy Microsoft (tylko klucz szyfrowania kluczy) — w przypadku niezarządzanych, zaszyfrowanych maszyn wirtualnych bez identyfikatora Entra firmy Microsoft (zaszyfrowanego tylko przy użyciu klucza BEK), jeśli klucz źródłowy /wpis tajny nie są dostępne , przywróć wpisy tajne do magazynu kluczy przy użyciu procedury w temacie Przywracanie nieszyfrowanej maszyny wirtualnej z punktu odzyskiwania usługi Azure Backup. Następnie wykonaj następujące skrypty, aby ustawić szczegóły szyfrowania dla przywróconego obiektu blob systemu operacyjnego (ten krok nie jest wymagany dla obiektu blob danych). $dekurl można pobrać z przywróconego magazynu kluczy.

    Poniższy skrypt należy wykonać tylko wtedy, gdy źródłowy klucz/wpis tajny nie jest dostępny.

        $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()
    

    Po udostępnieniu wpisów tajnych i ustawieniu szczegółów szyfrowania w obiekcie blob systemu operacyjnego dołącz dyski przy użyciu skryptu podanego poniżej.

    Jeśli źródłowa funkcja keyVault/secrets jest już dostępna, powyższe skrypty nie muszą być wykonywane.

        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"
        }
    
    • Niezarządzane i zaszyfrowane maszyny wirtualne bez identyfikatora entra firmy Microsoft (BEK i KEK) — w przypadku niezarządzanych, zaszyfrowanych maszyn wirtualnych bez identyfikatora Entra firmy Microsoft (zaszyfrowanego przy użyciu klucza BEK i KEK), jeśli źródłowy klucz/klucz/klucz tajny nie są dostępne , przywróć klucz i wpisy tajne do magazynu kluczy przy użyciu procedury w temacie Przywracanie niezaszyfrowanej maszyny wirtualnej z punktu odzyskiwania usługi Azure Backup. Następnie wykonaj następujące skrypty, aby ustawić szczegóły szyfrowania dla przywróconego obiektu blob systemu operacyjnego (ten krok nie jest wymagany dla obiektu blob danych). $dekurl i $kekurl można pobrać z przywróconego magazynu kluczy.

    Poniższy skrypt musi być wykonywany tylko wtedy, gdy źródłowy klucz/klucz/klucz/wpis tajny nie jest dostępny.

        $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()
    

    Po udostępnieniu klucza/wpisów tajnych i ustawieniu szczegółów szyfrowania w obiekcie blob systemu operacyjnego dołącz dyski przy użyciu skryptu podanego poniżej.

    Jeśli źródłowa funkcja keyVault/key/secrets jest dostępna, powyższe skrypty nie muszą być wykonywane.

        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"
        }
    
    • Zarządzane i niezaszyfrowane maszyny wirtualne — w przypadku zarządzanych maszyn wirtualnych niezaszyfrowanych dołącz przywrócone dyski zarządzane. Aby uzyskać szczegółowe informacje, zobacz Dołączanie dysku danych do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell.

    • Zarządzane i zaszyfrowane maszyny wirtualne z identyfikatorem Entra firmy Microsoft (tylko klucz szyfrowania bek) — w przypadku zarządzanych zaszyfrowanych maszyn wirtualnych z identyfikatorem Entra firmy Microsoft (zaszyfrowanym tylko przy użyciu klucza BEK) dołącz przywrócone dyski zarządzane. Aby uzyskać szczegółowe informacje, zobacz Dołączanie dysku danych do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell.

    • Zarządzane i zaszyfrowane maszyny wirtualne z identyfikatorem Entra firmy Microsoft (BEK i KEK) — w przypadku zarządzanych zaszyfrowanych maszyn wirtualnych przy użyciu identyfikatora Entra firmy Microsoft (zaszyfrowanego przy użyciu klucza szyfrowania i klucza KEK) dołącz przywrócone dyski zarządzane. Aby uzyskać szczegółowe informacje, zobacz Dołączanie dysku danych do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell.

    • Zarządzane i zaszyfrowane maszyny wirtualne bez identyfikatora entra firmy Microsoft (tylko klucz szyfrowania kluczy) — w przypadku zarządzanych, zaszyfrowanych maszyn wirtualnych bez identyfikatora Entra firmy Microsoft (zaszyfrowanego tylko przy użyciu klucza bek), jeśli klucz źródłowy /wpis tajny nie są dostępne , przywróć wpisy tajne do magazynu kluczy przy użyciu procedury w temacie Przywracanie niezaszyfrowanej maszyny wirtualnej z punktu odzyskiwania usługi Azure Backup. Następnie wykonaj następujące skrypty, aby ustawić szczegóły szyfrowania na przywróconym dysku systemu operacyjnego (ten krok nie jest wymagany dla dysku danych). $dekurl można pobrać z przywróconego magazynu kluczy.

    Poniższy skrypt musi być wykonywany tylko wtedy, gdy źródłowa usługa keyVault/secret nie jest dostępna.

    $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
    $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement
    $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement]
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement)
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1"
    Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
    

    Po udostępnieniu wpisów tajnych i ustawieniu szczegółów szyfrowania na dysku systemu operacyjnego, aby dołączyć przywrócone dyski zarządzane, zobacz Dołączanie dysku danych do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell.

    • Zarządzane i zaszyfrowane maszyny wirtualne bez identyfikatora entra firmy Microsoft (BEK i KEK) — w przypadku zarządzanych, zaszyfrowanych maszyn wirtualnych bez identyfikatora Entra firmy Microsoft (zaszyfrowanego przy użyciu klucza BEK i KEK), jeśli klucz/ klucz/wpis tajny nie są dostępne przywracanie klucza i wpisów tajnych do magazynu kluczy przy użyciu procedury w temacie Przywracanie nieszyfrowanej maszyny wirtualnej z punktu odzyskiwania usługi Azure Backup. Następnie wykonaj następujące skrypty, aby ustawić szczegóły szyfrowania na przywróconym dysku systemu operacyjnego (ten krok nie jest wymagany w przypadku dysków danych). $dekurl i $kekurl można pobrać z przywróconego magazynu kluczy.

    Poniższy skrypt należy wykonać tylko wtedy, gdy źródłowy klucz/klucz/wpis tajny nie jest dostępny.

    $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
    $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement
    $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl
    $encryptionSettingsElement.KeyEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndKeyReference
    $encryptionSettingsElement.KeyEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.KeyEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.KeyEncryptionKey.KeyUrl = $kekUrl
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement]
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement)
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1"
    Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
    

    Po udostępnieniu klucza/wpisów tajnych i ustawieniu szczegółów szyfrowania na dysku systemu operacyjnego, aby dołączyć przywrócone dyski zarządzane, zobacz Dołączanie dysku danych do maszyny wirtualnej z systemem Windows przy użyciu programu PowerShell.

  5. Ustaw ustawienia sieciowe.

    $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. Utwórz maszynę wirtualną.

    New-AzVM -ResourceGroupName "test" -Location "WestUS" -VM $vm
    
  7. Wypychanie rozszerzenia programu ADE. Jeśli rozszerzenia usługi ADE nie są wypychane, dyski danych zostaną oznaczone jako niezaszyfrowane, dlatego wymagane jest wykonanie poniższych kroków:

    • W przypadku maszyny wirtualnej z identyfikatorem Entra firmy Microsoft — użyj następującego polecenia, aby ręcznie włączyć szyfrowanie dysków danych

      Tylko klucz szyfrowania

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

      Klucz szyfrowania bek i klucz szyfrowania kluczy

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId  -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -VolumeType Data
      
    • W przypadku maszyny wirtualnej bez identyfikatora entra firmy Microsoft — użyj następującego polecenia, aby ręcznie włączyć szyfrowanie dysków danych.

      Jeśli podczas wykonywania polecenia zostanie wyświetlony monit o identyfikator AADClientID, musisz zaktualizować program Azure PowerShell.

      Tylko klucz szyfrowania

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

      Klucz szyfrowania bek i klucz szyfrowania kluczy

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

Uwaga

Upewnij się, że ręcznie usuń pliki JASON utworzone w ramach zaszyfrowanego procesu przywracania dysku maszyny wirtualnej.

Przywracanie plików z kopii zapasowej maszyny wirtualnej platformy Azure

Oprócz przywracania dysków można również przywrócić poszczególne pliki z kopii zapasowej maszyny wirtualnej platformy Azure. Funkcja przywracania plików zapewnia dostęp do wszystkich plików w punkcie odzyskiwania. Zarządzaj plikami za pośrednictwem Eksplorator plików tak jak w przypadku zwykłych plików.

Podstawowe kroki przywracania pliku z kopii zapasowej maszyny wirtualnej platformy Azure to:

  • Wybierz maszynę wirtualną
  • Wybierz punkt odzyskiwania
  • Instalowanie dysków punktu odzyskiwania
  • Kopiowanie wymaganych plików
  • Odinstalowywanie dysku

Wybierz maszynę wirtualną (podczas przywracania maszyny wirtualnej)

Aby uzyskać obiekt programu PowerShell, który identyfikuje odpowiedni element kopii zapasowej, zacznij od kontenera w magazynie i pracuj w dół hierarchii obiektów. Aby wybrać kontener reprezentujący maszynę wirtualną, użyj polecenia cmdlet Get-AzRecoveryServicesBackupContainer i potoku do polecenia cmdlet Get-AzRecoveryServicesBackupItem .

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

Wybierz punkt odzyskiwania (podczas przywracania maszyny wirtualnej)

Użyj polecenia cmdlet Get-AzRecoveryServicesBackupRecoveryPoint, aby wyświetlić listę wszystkich punktów odzyskiwania dla elementu kopii zapasowej. Następnie wybierz punkt odzyskiwania do przywrócenia. Jeśli nie masz pewności, który punkt odzyskiwania ma być używany, dobrym rozwiązaniem jest wybranie najnowszego elementu RecoveryPointType = AppConsistent point na liście.

W poniższym skryscie zmienna, $rp, jest tablicą punktów odzyskiwania dla wybranego elementu kopii zapasowej z ostatnich siedmiu dni. Tablica jest sortowana w odwrotnej kolejności czasu z najnowszym punktem odzyskiwania w indeksie 0. Użyj standardowego indeksowania tablic programu PowerShell, aby wybrać punkt odzyskiwania. W tym przykładzie $rp[0] wybiera najnowszy punkt odzyskiwania.

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

Dane wyjściowe są podobne do poniższego przykładu:

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

Instalowanie dysków punktu odzyskiwania

Użyj polecenia cmdlet Get-AzRecoveryServicesBackupRPMountScript, aby pobrać skrypt do zainstalowania wszystkich dysków punktu odzyskiwania.

Uwaga

Dyski są instalowane jako dyski dołączone iSCSI do maszyny, na której jest uruchamiany skrypt. Instalowanie odbywa się natychmiast i nie są naliczane żadne opłaty.

Get-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID

Dane wyjściowe są podobne do poniższego przykładu:

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

Uruchom skrypt na maszynie, na której chcesz odzyskać pliki. Aby wykonać skrypt, należy wprowadzić podane hasło. Po dołączeniu dysków użyj Eksplorator plików systemu Windows, aby przeglądać nowe woluminy i pliki. Aby uzyskać więcej informacji, zobacz artykuł Kopia zapasowa Odzyskiwanie plików z kopii zapasowej maszyny wirtualnej platformy Azure.

Odinstalowywanie dysków

Po skopiowaniu wymaganych plików użyj polecenia Disable-AzRecoveryServicesBackupRPMountScript , aby odinstalować dyski. Pamiętaj, aby odinstalować dyski, aby dostęp do plików punktu odzyskiwania został usunięty.

Disable-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID

Przywracanie danych do maszyny wirtualnej przy użyciu programu PowerShell

Teraz możesz bezpośrednio przywrócić dane do oryginalnej/alternatywnej maszyny wirtualnej bez wykonywania wielu kroków.

Przywracanie danych do oryginalnej maszyny wirtualnej

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$OriginalLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -VaultId $vault.ID -VaultLocation $vault.Location 
WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
V2VM            Restore         InProgress      26-Apr-16 1:14:01 PM   01-Jan-01 12:00:00 AM

Ostatnie polecenie wyzwala oryginalną operację przywracania lokalizacji w celu przywrócenia danych w miejscu na istniejącej maszynie wirtualnej.

Przywracanie danych do nowo utworzonej maszyny wirtualnej

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$AlternateLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -TargetResourceGroupName "Target_RG" -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -TargetVMName "TagetVirtualMachineName" -TargetVNetName "Target_VNet" -TargetVNetResourceGroup "" -TargetSubnetName "subnetName" -VaultId $vault.ID -VaultLocation $vault.Location 
WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
V2VM            Restore         InProgress      26-Apr-16 1:14:01 PM   01-Jan-01 12:00:00 AM

Ostatnie polecenie wyzwala operację przywracania alternatywnej lokalizacji w celu utworzenia nowej maszyny wirtualnej w grupie zasobów Target_RG zgodnie z danymi wejściowymi określonymi przez parametry TargetVMName, TargetVNetName, TargetVNetResourceGroup, TargetSubnetName. Dzięki temu dane zostaną przywrócone w wymaganej maszynie wirtualnej, sieci wirtualnej i podsieci.

Następne kroki

Jeśli wolisz używać programu PowerShell do angażowania się w zasoby platformy Azure, zobacz artykuł PowerShell Deploy and Manage Backup for Windows Server (Wdrażanie kopii zapasowych i zarządzanie nimi dla systemu Windows Server). Jeśli zarządzasz kopiami zapasowymi programu DPM, zobacz artykuł Wdrażanie kopii zapasowej programu DPM i zarządzanie nimi.