Wiederherstellen von Azure Files mit PowerShell

In diesem Artikel wird erläutert, wie Sie eine vollständige Dateifreigabe oder bestimmte Dateien von einem vom Azure Backup-Dienst erstellten Wiederherstellungspunkt mithilfe von Azure PowerShell wiederherstellten.

Sie können eine gesamte Dateifreigabe oder aber bestimmte Dateien aus dieser Freigabe wiederherstellen. Dabei haben Sie die Möglichkeit, eine Wiederherstellung am ursprünglichen oder an einem alternativen Speicherort durchzuführen.

Warnung

Stellen Sie für AFS-Sicherungen sicher, dass die PowerShell-Version auf die Mindestversion für „Az.RecoveryServices 2.6.0“ aktualisiert wird. Weitere Informationen finden Sie im Abschnitt zur Anforderung für diese Änderung.

Hinweis

Azure Backup unterstützt jetzt das Wiederherstellen mehrerer Dateien oder Ordner am ursprünglichen oder an einem alternativen Speicherort mithilfe von PowerShell. Weitere Informationen dazu finden Sie in diesem Abschnitt des Dokuments.

Abrufen von Wiederherstellungspunkten

Verwenden Sie Get-AzRecoveryServicesBackupRecoveryPoint, um alle Wiederherstellungspunkte für das gesicherte Element aufzulisten.

Für das unten aufgeführte Skript gilt Folgendes:

  • Die Variable $rp ist ein Array von Wiederherstellungspunkten für das ausgewählte Sicherungselement der letzten sieben Tage.
  • Das Array wird in umgekehrter Reihenfolge sortiert. Der letzte Wiederherstellungspunkt liegt bei Index 0.
  • Verwenden Sie die standardmäßige PowerShell-Arrayindizierung zum Auswählen des Wiederherstellungspunkts.
  • Im Beispiel wählt $rp[0] den letzten Wiederherstellungspunkt aus.
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"
$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID
$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
$rp[0] | fl

Die Ausgabe sieht in etwa wie folgt aus:

FileShareSnapshotUri : https://testStorageAcct.file.core.windows.net/testAzureFS?sharesnapshot=2018-11-20T00:31:04.00000
                       00Z
RecoveryPointType    : FileSystemConsistent
RecoveryPointTime    : 11/20/2018 12:31:05 AM
RecoveryPointId      : 86593702401459
ItemName             : testAzureFS
Id                   : /Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Micros                      oft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;teststorageRG;testStorageAcct/protectedItems/AzureFileShare;testAzureFS/recoveryPoints/86593702401462
WorkloadType         : AzureFiles
ContainerName        : storage;teststorageRG;testStorageAcct
ContainerType        : AzureStorage
BackupManagementType : AzureStorage

Nachdem der entsprechende Wiederherstellungspunkt ausgewählt wurde, stellen Sie die Dateifreigabe oder Datei am ursprünglichen oder an einem alternativen Speicherort wieder her.

Wiederherstellen einer Azure-Dateifreigabe an einem alternativen Speicherort

Verwenden Sie Restore-AzRecoveryServicesBackupItem, um den ausgewählten Wiederherstellungspunkt wiederherzustellen. Geben Sie die folgenden Parameter an, um den alternativen Speicherort festzulegen:

  • TargetStorageAccountName: Das Speicherkonto, in dem der gesicherte Inhalt wiederhergestellt wird. Das Zielspeicherkonto muss sich am gleichen Speicherort wie der Tresor befinden.
  • TargetFileShareName: Die Dateifreigaben in dem Zielspeicherkonto, in dem der gesicherte Inhalt wiederhergestellt wird.
  • TargetFolder: Der Ordner unter der Dateifreigabe, in dem die Daten wiederhergestellt werden. Wenn der gesicherte Inhalt in einem Stammordner wiederhergestellt werden soll, geben Sie die Werte für den Zielordner als eine leere Zeichenfolge ein.
  • ResolveConflict: Die Anweisung bei einem Konflikt mit den wiederhergestellten Daten. Für diesen Parameter kann Overwrite oder Skip angegeben werden.

Führen Sie das Cmdlet mit den Parametern wie folgt aus:

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -ResolveConflict Overwrite

Der Befehl gibt einen Auftrag mit einer ID zur Nachverfolgung zurück, wie im folgenden Beispiel gezeigt wird.

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS        Restore              InProgress           12/10/2018 9:56:38 AM                               9fd34525-6c46-496e-980a-3740ccb2ad75

Wiederherstellen einer Azure-Datei an einem alternativen Speicherort

Verwenden Sie Restore-AzRecoveryServicesBackupItem, um den ausgewählten Wiederherstellungspunkt wiederherzustellen. Geben Sie die folgenden Parameter an, um den alternativen Speicherort und die wiederherzustellende Datei eindeutig festzulegen:

  • TargetStorageAccountName: Das Speicherkonto, in dem der gesicherte Inhalt wiederhergestellt wird. Das Zielspeicherkonto muss sich am gleichen Speicherort wie der Tresor befinden.
  • TargetFileShareName: Die Dateifreigaben in dem Zielspeicherkonto, in dem der gesicherte Inhalt wiederhergestellt wird.
  • TargetFolder: Der Ordner unter der Dateifreigabe, in dem die Daten wiederhergestellt werden. Wenn der gesicherte Inhalt in einem Stammordner wiederhergestellt werden soll, geben Sie die Werte für den Zielordner als eine leere Zeichenfolge ein.
  • SourceFilePath: Der absolute Pfad der (in der Dateifreigabe wiederherzustellenden) Datei als Zeichenfolge. Dieser Pfad ist derselbe Pfad, der im PowerShell-Cmdlet Get-AzStorageFile verwendet wird.
  • SourceFileType: Gibt an, ob ein Verzeichnis oder eine Datei ausgewählt wurde. Für diesen Parameter kann Directory oder File angegeben werden.
  • ResolveConflict: Die Anweisung bei einem Konflikt mit den wiederhergestellten Daten. Für diesen Parameter kann Overwrite oder Skip angegeben werden.

Die zusätzlichen Parameter („SourceFilePath“ und „SourceFileType“) beziehen sich nur auf die Datei, die Sie wiederherstellen möchten.

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Der Befehl gibt einen Auftrag mit einer ID zur Nachverfolgung zurück, wie im vorherigen Abschnitt gezeigt wurde.

Wiederherstellen von Azure-Dateifreigaben und -Dateien am ursprünglichen Speicherort

Wenn Sie an einem ursprünglichen Speicherort eine Wiederherstellung vornehmen, müssen Sie nicht alle Zielparameter und zielbezogenen Parameter angeben. Nur ResolveConflict muss angegeben werden.

Überschreiben einer Azure-Dateifreigabe

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -ResolveConflict Overwrite

Überschreiben einer Azure-Datei

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Wiederherstellen mehrerer Dateien oder Ordner am ursprünglichen oder an einem alternativen Speicherort

Verwenden Sie den Befehl Restore-AzRecoveryServicesBackupItem, indem Sie den Pfad aller Dateien oder Ordner, die Sie wiederherstellen möchten, als Wert für den Parameter MultipleSourceFilePath übergeben.

Wiederherstellen mehrerer Dateien

Im folgenden Skript versuchen wir, die Dateien FileSharePage.png und MyTestFile.txt wiederherzustellen.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("FileSharePage.png", "MyTestFile.txt")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType File -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

Wiederherstellen mehrerer Verzeichnisse

Im folgenden Skript versuchen wir, die Verzeichnisse zrs1_restore und Restore wiederherzustellen.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("Restore","zrs1_restore")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType Directory -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

Die Ausgabe sieht etwa wie folgt aus:

WorkloadName         Operation         Status          StartTime                EndTime       JobID
------------         ---------         ------          ---------                -------       -----
azurefiles           Restore           InProgress      4/5/2020 8:01:24 AM                    cd36abc3-0242-44b1-9964-0a9102b74d57

Wenn Sie mehrere Dateien oder Ordner an einem alternativen Speicherort wiederherstellen möchten, verwenden Sie die oben aufgeführten Skripts, indem Sie die Parameterwerte für den Zielspeicherort angeben, wie oben unter Wiederherstellen einer Azure-Datei an einem alternativen Speicherort erläutert.

Nächste Schritte

Informieren Sie sich über die Wiederherstellung von Azure Files im Azure-Portal.