Share via


Azure Files herstellen met PowerShell

In dit artikel wordt uitgelegd hoe u een volledige bestandsshare of specifieke bestanden kunt herstellen vanaf een herstelpunt dat is gemaakt door de Azure Backup-service met behulp van Azure PowerShell.

U kunt een volledige bestandsshare of specifieke bestanden op de share herstellen. U kunt herstellen naar de oorspronkelijke locatie of naar een alternatieve locatie.

Waarschuwing

Zorg ervoor dat de PowerShell-versie is bijgewerkt naar de minimale versie voor 'Az.RecoveryServices 2.6.0' voor AFS-back-ups. Zie de sectie met een overzicht van de vereisten voor deze wijziging voor meer informatie.

Notitie

Azure Backup ondersteunt nu het herstellen van meerdere bestanden of mappen naar de oorspronkelijke of alternatieve locatie met behulp van PowerShell. Raadpleeg deze sectie van het document voor meer informatie.

Herstelpunten ophalen

Gebruik Get-AzRecoveryServicesBackupRecoveryPoint om alle herstelpunten voor het back-upitem weer te geven.

In het volgende script:

  • De variabele $rp is een matrix met herstelpunten voor het geselecteerde back-upitem van de afgelopen zeven dagen.
  • De matrix wordt in omgekeerde volgorde van tijd gesorteerd met het meest recente herstelpunt op index 0.
  • Gebruik standaard PowerShell-matrixindexering om het herstelpunt te kiezen.
  • In het voorbeeld selecteert $rp[0] het meest recente herstelpunt.
$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

De uitvoer is vergelijkbaar met het volgende.

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

Nadat het relevante herstelpunt is geselecteerd, herstelt u de bestandsshare of het bestand naar de oorspronkelijke locatie of naar een alternatieve locatie.

Een Azure-bestandsshare herstellen naar een alternatieve locatie

Gebruik restore-AzRecoveryServicesBackupItem om het geselecteerde herstelpunt te herstellen. Geef deze parameters op om de alternatieve locatie te identificeren:

  • TargetStorageAccountName: het opslagaccount waarnaar de back-up van de inhoud wordt hersteld. Het doelopslagaccount moet zich op dezelfde locatie bevinden als de kluis.
  • TargetFileShareName: de bestandsshares in het doelopslagaccount waarnaar de inhoud waarvan een back-up is gemaakt, wordt hersteld.
  • TargetFolder: de map onder de bestandsshare waarin de gegevens worden hersteld. Als de inhoud waarvan een back-up is gemaakt, moet worden teruggezet naar een hoofdmap, geeft u de waarden van de doelmap op als een lege tekenreeks.
  • ResolveConflict: Instructie als er een conflict is met de herstelde gegevens. Accepteert Overschrijven of Overslaan.

Voer de cmdlet als volgt uit met de parameters:

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

De opdracht retourneert een taak met een id die moet worden bijgehouden, zoals wordt weergegeven in het volgende voorbeeld.

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

Een Azure-bestand herstellen naar een alternatieve locatie

Gebruik restore-AzRecoveryServicesBackupItem om het geselecteerde herstelpunt te herstellen. Geef deze parameters op om de alternatieve locatie te identificeren en om het bestand dat u wilt herstellen, uniek te identificeren.

  • TargetStorageAccountName: het opslagaccount waarnaar de back-up van de inhoud wordt hersteld. Het doelopslagaccount moet zich op dezelfde locatie bevinden als de kluis.
  • TargetFileShareName: de bestandsshares in het doelopslagaccount waarnaar de inhoud waarvan een back-up is gemaakt, wordt hersteld.
  • TargetFolder: de map onder de bestandsshare waarin de gegevens worden hersteld. Als de inhoud waarvan een back-up is gemaakt, moet worden teruggezet naar een hoofdmap, geeft u de waarden van de doelmap op als een lege tekenreeks.
  • SourceFilePath: het absolute pad van het bestand, dat in de bestandsshare moet worden hersteld, als een tekenreeks. Dit pad is hetzelfde pad dat wordt gebruikt in de PowerShell-cmdlet Get-AzStorageFile .
  • SourceFileType: of een map of een bestand is geselecteerd. Accepteert map of bestand.
  • ResolveConflict: Instructie als er een conflict is met de herstelde gegevens. Accepteert Overschrijven of Overslaan.

De extra parameters (SourceFilePath en SourceFileType) zijn alleen gerelateerd aan het afzonderlijke bestand dat u wilt herstellen.

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

Met deze opdracht wordt een taak geretourneerd met een id die moet worden bijgehouden, zoals weergegeven in de vorige sectie.

Azure-bestandsshares en -bestanden herstellen naar de oorspronkelijke locatie

Wanneer u herstelt naar een oorspronkelijke locatie, hoeft u geen doel- en doelparameters op te geven. Alleen ResolveConflict moet worden opgegeven.

Een Azure-bestandsshare overschrijven

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

Een Azure-bestand overschrijven

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

Meerdere bestanden of mappen herstellen naar de oorspronkelijke of alternatieve locatie

Gebruik de opdracht Restore-AzRecoveryServicesBackupItem door het pad door te geven van alle bestanden of mappen die u wilt herstellen als een waarde voor de parameter MultipleSourceFilePath .

Meerdere bestanden herstellen

In het volgende script proberen we de FileSharePage.png - en MyTestFile.txt-bestanden te herstellen.

$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

Meerdere mappen herstellen

In het volgende script proberen we de mappen zrs1_restore en Herstellen te herstellen.

$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

De uitvoer ziet er ongeveer als volgt uit:

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

Als u meerdere bestanden of mappen wilt herstellen naar een alternatieve locatie, gebruikt u de bovenstaande scripts door de parameterwaarden voor de doellocatie op te geven, zoals hierboven wordt uitgelegd in Een Azure-bestand herstellen naar een alternatieve locatie.

Volgende stappen

Meer informatie over het herstellen van Azure Files in de Azure Portal.