Usare i cmdlet AzureRM.RecoveryServices.Backup per eseguire il backup di macchine virtualiUse AzureRM.RecoveryServices.Backup cmdlets to back up virtual machines

In questo articolo viene illustrato come usare i cmdlet di Azure PowerShell per eseguire il backup e ripristinare una macchina virtuale (VM) di Azure da un insieme di credenziali dei servizi di ripristino.This article shows you how to use Azure PowerShell cmdlets to back up and recover an Azure virtual machine (VM) from a Recovery Services vault. Un insieme di credenziali dei servizi di ripristino è una risorsa di Resource Manager di Azure e viene utilizzato per proteggere i dati e asset nei servizi di Backup di Azure e di Azure Site Recovery.A Recovery Services vault is an Azure Resource Manager resource and is used to protect data and assets in both Azure Backup and Azure Site Recovery services. È possibile usare un insieme di credenziali di Servizi di ripristino per proteggere le macchine virtuali distribuite con Service Manager di Azure e Azure Resource Manager.You can use a Recovery Services vault to protect Azure Service Manager-deployed VMs, and Azure Resource Manager-deployed VMs.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Resource Manager e distribuzione classica.Azure has two deployment models for creating and working with resources: Resource Manager and Classic. Questo articolo si riferisce alle VM create tramite il modello Resource Manager.This article is for use with VMs created using the Resource Manager model.

In questo articolo viene illustrato come usare PowerShell per proteggere una macchina virtuale e ripristinare i dati da un punto di ripristino.This article walks you through using PowerShell to protect a VM, and restore data from a recovery point.

ConcettiConcepts

Se non si ha familiarità con il servizio di Backup di Azure, vedere l'argomento Che cos'è Backup di Azure? per una panoramica sul servizioIf you are not familiar with the Azure Backup service, for an overview of the service, check out What is Azure Backup? Prima di iniziare, assicurarsi di avere gli elementi di base per i prerequisiti necessari per usare il servizio Backup di Azure, e le limitazioni della soluzione attuale di backup della macchina virtuale.Before you start, ensure that you cover the essentials about the prerequisites needed to work with Azure Backup, and the limitations of the current VM backup solution.

Per un utilizzo efficace di PowerShell, è necessario comprendere la gerarchia degli oggetti e da dove iniziare.To use PowerShell effectively, it is necessary to understand the hierarchy of objects and from where to start.

Gerarchia di oggetti dei servizi di ripristino

Per visualizzare il riferimento al cmdlet AzureRm.RecoveryServices.Backup di PowerShell, vedere Azure Backup - Recovery Services Cmdlets (Backup di Azure: i cmdlet dei servizi di ripristino) nella libreria di Azure.To view the AzureRm.RecoveryServices.Backup PowerShell cmdlet reference, see the Azure Backup - Recovery Services Cmdlets in the Azure library.

Installazione e registrazioneSetup and Registration

Per iniziare:To begin:

  1. Scaricare la versione più recente di PowerShell (la versione minima richiesta è: 1.4.0)Download the latest version of PowerShell (the minimum version required is: 1.4.0)
  2. Cercare i cmdlet PowerShell di Azure Backup disponibili digitando il comando seguente:Find the Azure Backup PowerShell cmdlets available by typing the following command:
PS C:\> Get-Command *azurermrecoveryservices*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Backup-AzureRmRecoveryServicesBackupItem           1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Disable-AzureRmRecoveryServicesBackupProtection    1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Enable-AzureRmRecoveryServicesBackupProtection     1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupContainer         1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupItem              1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupJob               1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupJobDetails        1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupManagementServer  1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupProperties        1.4.0      AzureRM.RecoveryServices
Cmdlet          Get-AzureRmRecoveryServicesBackupProtectionPolicy  1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRMRecoveryServicesBackupRecoveryPoint     1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupRetentionPolic... 1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesBackupSchedulePolicy... 1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Get-AzureRmRecoveryServicesVault                   1.4.0      AzureRM.RecoveryServices
Cmdlet          Get-AzureRmRecoveryServicesVaultSettingsFile       1.4.0      AzureRM.RecoveryServices
Cmdlet          New-AzureRmRecoveryServicesBackupProtectionPolicy  1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          New-AzureRmRecoveryServicesVault                   1.4.0      AzureRM.RecoveryServices
Cmdlet          Remove-AzureRmRecoveryServicesProtectionPolicy     1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Remove-AzureRmRecoveryServicesVault                1.4.0      AzureRM.RecoveryServices
Cmdlet          Restore-AzureRMRecoveryServicesBackupItem          1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Set-AzureRmRecoveryServicesBackupProperties        1.4.0      AzureRM.RecoveryServices
Cmdlet          Set-AzureRmRecoveryServicesBackupProtectionPolicy  1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Set-AzureRmRecoveryServicesVaultContext            1.4.0      AzureRM.RecoveryServices
Cmdlet          Stop-AzureRmRecoveryServicesBackupJob              1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Unregister-AzureRmRecoveryServicesBackupContainer  1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Unregister-AzureRmRecoveryServicesBackupManagem... 1.4.0      AzureRM.RecoveryServices.Backup
Cmdlet          Wait-AzureRmRecoveryServicesBackupJob              1.4.0      AzureRM.RecoveryServices.Backup

Le attività seguenti possono essere automatizzate tramite PowerShell:The following tasks can be automated with PowerShell:

  • Creare un insieme di credenziali di Servizi di ripristinoCreate a Recovery Services vault
  • Eseguire il backup delle VM di AzureBack up Azure VMs
  • Attivare un processo di backupTrigger a backup job
  • Monitorare un processo di backupMonitor a backup job
  • Ripristinare una macchina virtuale di AzureRestore an Azure VM

Creare un insieme di credenziali di Servizi di ripristinoCreate a recovery services vault

Nei passaggi seguenti viene descritto come creare un insieme di credenziali dei servizi di ripristino.The following steps lead you through creating a Recovery Services vault. Un insieme di credenziali dei servizi di ripristino è diverso da un insieme di credenziali di backup.A Recovery Services vault is different than a Backup vault.

  1. Se si sta usando Backup di Azure per la prima volta, è necessario usare il cmdlet Register-AzureRmResourceProvider per registrare il provider dei Servizi di ripristino di Azure con la propria sottoscrizione.If you are using Azure Backup for the first time, you must use the Register-AzureRmResourceProvider cmdlet to register the Azure Recovery Service provider with your subscription.

    PS C:\> Register-AzureRmResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  2. L'insieme di credenziali dei Servizi di ripristino è una risorsa Resource Manager, pertanto è necessario inserirlo all'interno di un gruppo di risorse.The Recovery Services vault is a Resource Manager resource, so you need to place it within a resource group. È possibile usare un gruppo di risorse esistente o crearne uno con il cmdlet New-AzureRmResourceGroup.You can use an existing resource group, or create a resource group with the New-AzureRmResourceGroup cmdlet. Quando si crea un nuovo gruppo di risorse, è necessario specificare il nome e il percorso per il gruppo di risorse.When creating a resource group, specify the name and location for the resource group.

    PS C:\> New-AzureRmResourceGroup -Name "test-rg" -Location "West US"
    
  3. Usare il cmdlet New-AzureRmRecoveryServicesVault per creare un nuovo insieme di credenziali dei Servizi di ripristino.Use the New-AzureRmRecoveryServicesVault cmdlet to create the Recovery Services vault. Assicurarsi di specificare per l'insieme di credenziali lo stesso percorso usato per il gruppo di risorse.Be sure to specify the same location for the vault as was used for the resource group.

    PS C:\> New-AzureRmRecoveryServicesVault -Name "testvault" -ResourceGroupName " test-rg" -Location "West US"
    
  4. Specificare il tipo di ridondanza di archiviazione da usare, ad esempio archiviazione con ridondanza locale (LRS) o archiviazione con ridondanza geografica (GRS).Specify the type of storage redundancy to use; you can use Locally Redundant Storage (LRS) or Geo Redundant Storage (GRS). Nell'esempio seguente l'opzione BackupStorageRedundancy per testvault è impostata su GeoRedundant.The following example shows the -BackupStorageRedundancy option for testvault is set to GeoRedundant.

    PS C:\> $vault1 = Get-AzureRmRecoveryServicesVault -Name "testvault"
    PS C:\> Set-AzureRmRecoveryServicesBackupProperties  -Vault $vault1 -BackupStorageRedundancy GeoRedundant
    

    Suggerimento

    Molti cmdlet di Backup di Azure richiedono l'oggetto dell'insieme di credenziali dei servizi di ripristino come input.Many Azure Backup cmdlets require the Recovery Services vault object as an input. Per questo motivo, è utile archiviare l'oggetto dell'insieme di credenziali dei servizi di ripristino di Backup in una variabile.For this reason, it is convenient to store the Backup Recovery Services vault object in a variable.

Visualizzare gli insiemi di credenziali in un abbonamentoView the vaults in a subscription

Usare Get-AzureRmRecoveryServicesVault per visualizzare l'elenco di tutti gli insiemi di credenziali della sottoscrizione corrente.Use Get-AzureRmRecoveryServicesVault to view the list of all vaults in the current subscription. È possibile usare questo comando per verificare che sia stato creato un nuovo insieme di credenziali o per vedere gli insiemi di credenziali nella sottoscrizione.You can use this command to check that a new vault was created, or to see the available vaults in the subscription.

Eseguire il comando Get-AzureRmRecoveryServicesVault per visualizzare tutti gli insiemi di credenziali disponibili nella sottoscrizione.Run the command, Get-AzureRmRecoveryServicesVault, to view all vaults in the subscription. L'esempio seguente mostra le informazioni visualizzate per ogni insieme di credenziali.The following example shows the information displayed for each vault.

PS C:\> Get-AzureRmRecoveryServicesVault
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

Eseguire il backup delle VM di AzureBack up Azure VMs

Usare un insieme di credenziali di Servizi di ripristino per proteggere le macchine virtuali.Use a Recovery Services vault to protect your virtual machines. Prima di applicare la protezione, impostare il contesto dell'insieme di credenziali (tipo di dati protetti nell'insieme di credenziali) e verificare i criteri di protezione.Before you apply the protection, set the vault context (the type of data protected in the vault), and verify the protection policy. I criteri di protezione rappresentano la pianificazione per l'esecuzione dei processi di backup e il periodo di conservazione di ogni snapshot del backup.The protection policy is the schedule when the backup jobs run, and how long each backup snapshot is retained.

Impostazione del contesto dell'insieme di credenzialiSet vault context

Prima di abilitare la protezione per una macchina virtuale, usare Set AzureRmRecoveryServicesVaultContext per impostare il contesto dell'insieme di credenziali.Before enabling protection on a VM, use Set-AzureRmRecoveryServicesVaultContext to set the vault context. Una volta impostato il contesto dell'insieme di credenziali, si applica a tutti i cmdlet successivi.Once the vault context is set, it applies to all subsequent cmdlets. L'esempio seguente imposta il contesto per l'insieme di credenziali, testvault.The following example sets the vault context for the vault, testvault.

PS C:\> Get-AzureRmRecoveryServicesVault -Name "testvault" | Set-AzureRmRecoveryServicesVaultContext

Creare i criteri di protezioneCreate a protection policy

Quando si crea un insieme di credenziali di Servizi di ripristino, questo è dotato di protezione predefinita e criteri di conservazione.When you create a Recovery Services vault, it comes with default protection and retention policies. I criteri di protezione predefinita attivano un processo di backup ogni giorno all'ora specificata.The default protection policy triggers a backup job each day at a specified time. I criteri di conservazione predefiniti consentono di mantenere il punto di recupero giornaliero per 30 giorni.The default retention policy retains the daily recovery point for 30 days. È possibile usare i criteri predefiniti per proteggere rapidamente la macchina virtuale e modificare i criteri in un secondo momento con dettagli diversi.You can use the default policy to quickly protect your VM and edit the policy later with different details.

Per visualizzare l'elenco dei criteri di protezione disponibili nell'insieme di credenziali, usare Get-AzureRmRecoveryServicesBackupProtectionPolicy.Use Get-AzureRmRecoveryServicesBackupProtectionPolicy to view the protection policies in the vault. È possibile usare questo cmdlet per ottenere un criterio specifico o per visualizzare i criteri associati a un tipo di carico di lavoro.You can use this cmdlet to get a specific policy, or to view the policies associated with a workload type. L'esempio seguente ottiene i criteri per il tipo di carico di lavoro AzureVM.The following example gets policies for workload type, AzureVM.

PS C:\> Get-AzureRmRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM"
Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
DefaultPolicy        AzureVM            AzureVM              4/14/2016 5:00:00 PM

Nota

Il fuso orario del campo BackupTime in PowerShell è UTC.The timezone of the BackupTime field in PowerShell is UTC. Tuttavia, l'orario di backup nel portale di Azure è allineato al fuso orario locale.However, when the backup time is shown in the Azure portal, the time is adjusted to your local timezone.

I criteri di protezione del backup sono associati almeno a un criterio di conservazione.A backup protection policy is associated with at least one retention policy. I criteri di conservazione definiscono per quanto tempo un punto di recupero viene mantenuto prima dell'eliminazione.Retention policy defines how long a recovery point is kept before it is deleted. Per visualizzare il criterio di conservazione predefinito usare Get-AzureRmRecoveryServicesBackupRetentionPolicyObject.Use Get-AzureRmRecoveryServicesBackupRetentionPolicyObject to view the default retention policy. Nello stesso modo, per ottenere il criterio di pianificazione predefinito usare Get-AzureRmRecoveryServicesBackupSchedulePolicyObject.Similarly you can use Get-AzureRmRecoveryServicesBackupSchedulePolicyObject to obtain the default schedule policy. Il cmdlet New-AzureRmRecoveryServicesBackupProtectionPolicy crea un oggetto di PowerShell che contiene le informazioni relative ai criteri di backup.The New-AzureRmRecoveryServicesBackupProtectionPolicy cmdlet creates a PowerShell object that holds backup policy information. Gli oggetti dei criteri di conservazione e di pianificazione vengono usati come input per il cmdlet New-AzureRmRecoveryServicesBackupProtectionPolicy.The schedule and retention policy objects are used as inputs to the New-AzureRmRecoveryServicesBackupProtectionPolicy cmdlet. Nell'esempio seguente i criteri di pianificazione e i criteri di conservazione vengono archiviati nelle variabili.The following example stores the schedule policy and the retention policy in variables. L'esempio usa tali variabili per definire i parametri durante la creazione di un criterio di protezione, NewPolicy.The example uses those variables to define the parameters when creating a protection policy, NewPolicy.

PS C:\> $schPol = Get-AzureRmRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
PS C:\> $retPol = Get-AzureRmRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
PS C:\> New-AzureRmRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -WorkloadType "AzureVM" -RetentionPolicy $retPol -SchedulePolicy $schPol
Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewPolicy           AzureVM            AzureVM              4/24/2016 1:30:00 AM

Abilitare la protezioneEnable protection

Dopo aver definito i criteri di protezione di backup è comunque necessario abilitare i criteri per un elemento.Once you have defined the backup protection policy, you still must enable the policy for an item. Per abilitare la protezione usare Enable-AzureRmRecoveryServicesBackupProtection.Use Enable-AzureRmRecoveryServicesBackupProtection to enable protection. Per abilitare la protezione sono necessari due oggetti, l'elemento e i criteri.Enabling protection requires two objects - the item and the policy. Dopo aver associato i criteri all'insieme di credenziali, il flusso di lavoro di backup verrà attivato al momento definito nella pianificazione dei criteri.Once the policy has been associated with the vault, the backup workflow is triggered at the time defined in the policy schedule.

L'esempio seguente abilita la protezione per l'elemento V2VM usando i criteri NewPolicy.The following example enables protection for the item, V2VM, using the policy, NewPolicy. Per abilitare la protezione in macchine virtuali di Resource Manager non crittografateTo enable the protection on non-encrypted Resource Manager VMs

PS C:\> $pol=Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
PS C:\> Enable-AzureRmRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1"

Per abilitare la protezione in macchine virtuali crittografate con BEK e KEK, è necessario assegnare le autorizzazioni per il servizio di Backup di Azure per la lettura di chiavi e segreti dal Key Vault.To enable the protection on encrypted VMs (encrypted using BEK and KEK), you need to give the Azure Backup service permission to read keys and secrets from key vault.

PS C:\> Set-AzureRmKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToKeys backup,get,list -PermissionsToSecrets get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
PS C:\> $pol=Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
PS C:\> Enable-AzureRmRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1"

Per abilitare la protezione in macchine virtuali crittografate (solo con BEK), è necessario assegnare le autorizzazioni per il servizio di Backup di Azure per la lettura di segreti dall'insieme di credenziali delle chiavi.To enable the protection on encrypted VMs (encrypted using BEK only), you need to give the Azure Backup service permission to read secrets from key vault.

PS C:\> Set-AzureRmKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToSecrets backup,get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
PS C:\> $pol=Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
PS C:\> Enable-AzureRmRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1"

Nota

Se si usa il cloud di Azure per enti pubblici, usare il valore ff281ffe-705c-4f53-9f37-a40e6f2c68f3 per il parametro -ServicePrincipalName nel cmdlet Set-AzureRmKeyVaultAccessPolicy.If you are using the Azure Government cloud, then use the value ff281ffe-705c-4f53-9f37-a40e6f2c68f3 for the parameter -ServicePrincipalName in Set-AzureRmKeyVaultAccessPolicy cmdlet.

Macchine virtuali classicheFor classic VMs

PS C:\> $pol=Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
PS C:\> Enable-AzureRmRecoveryServicesBackupProtection -Policy $pol -Name "V1VM" -ServiceName "ServiceName1"

Modificare i criteri di protezioneModify a protection policy

Per modificare i criteri di protezione, usare Set-AzureRmRecoveryServicesBackupProtectionPolicy per modificare gli oggetti SchedulePolicy o RetentionPolicy.To modify the protection policy, use Set-AzureRmRecoveryServicesBackupProtectionPolicy to modify the SchedulePolicy or RetentionPolicy objects.

Nell'esempio seguente viene modificato il punto di recupero a 365 giorni.The following example changes the recovery point retention to 365 days.

PS C:\> $retPol = Get-AzureRmRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
PS C:\> $retPol.DailySchedule.DurationCountInDays = 365
PS C:\> $pol= Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "NewPolicy"
PS C:\> Set-AzureRmRecoveryServicesBackupProtectionPolicy -Policy $pol  -RetentionPolicy $RetPol

Attivare un backupTrigger a backup

È possibile usare Backup-AzureRmRecoveryServicesBackupItem per attivare un processo di backup.You can use Backup-AzureRmRecoveryServicesBackupItem to trigger a backup job. Se si tratta del backup iniziale, è un backup completo.If it is the initial backup, it is a full backup. I backup successivi saranno incrementali.Subsequent backups take an incremental copy. Per impostare il contesto dell'insieme di credenziali prima di attivare il processo di backup, usare Set-AzureRmRecoveryServicesVaultContext.Be sure to use Set-AzureRmRecoveryServicesVaultContext to set the vault context before triggering the backup job. L'esempio seguente presuppone che sia stato impostato il contesto dell'insieme di credenziali.The following example assumes vault context was set.

PS C:\> $namedContainer = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM"
PS C:\> $item = Get-AzureRmRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM"
PS C:\> $job = Backup-AzureRmRecoveryServicesBackupItem -Item $item
WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM              Backup               InProgress            4/23/2016 5:00:30 PM                       cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Nota

Il fuso orario dei campi StartTime ed EndTime in PowerShell è UTC.The timezone of the StartTime and EndTime fields in PowerShell is UTC. Tuttavia, l'orario visualizzato nel portale di Azure è allineato al fuso orario locale.However, when the time is shown in the Azure portal, the time is adjusted to your local timezone.

Monitoraggio di un processo di backupMonitoring a backup job

È possibile monitorare le operazioni a esecuzione prolungata, ad esempio i processi di backup, senza usare il portale di Azure.You can monitor long-running operations, such as backup jobs, without using the Azure portal. Per ottenere lo stato di un processo in corso, usare il cmdlet Get-AzureRmRecoveryservicesBackupJob.To get the status of an in-progress job, use the Get-AzureRmRecoveryservicesBackupJob cmdlet. Questo cmdlet ottiene i processi di backup per un insieme di credenziali specifico e tale insieme di credenziali è indicato nel relativo contesto.This cmdlet gets the backup jobs for a specific vault, and that vault is specified in the vault context. L'esempio seguente ottiene lo stato di un processo in corso sotto forma di matrice e archivia lo stato nella variabile $joblist.The following example gets the status of an in-progress job as an array, and stores the status in the $joblist variable.

PS C:\> $joblist = Get-AzureRmRecoveryservicesBackupJob –Status "InProgress"
PS C:\> $joblist[0]
WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM             Backup               InProgress            4/23/2016 5:00:30 PM           cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Invece di eseguire il polling dei processi per ottenere lo stato di completamento, operazione non necessaria che prevede codice aggiuntivo, usare il cmdlet Wait-AzureRmRecoveryServicesBackupJob.Instead of polling these jobs for completion - which is unnecessary additional code - use the Wait-AzureRmRecoveryServicesBackupJob cmdlet. Questo cmdlet sospende l'esecuzione fino al completamento del processo o fino a quando non viene raggiunto il valore di timeout specificato.This cmdlet pauses the execution until either the job completes or the specified timeout value is reached.

PS C:\> Wait-AzureRmRecoveryServicesBackupJob -Job $joblist[0] -Timeout 43200

Ripristinare una macchina virtuale di AzureRestore an Azure VM

C'è una differenza chiave tra il ripristino di una macchina virtuale tramite il portale di Azure e il ripristino di una macchina virtuale tramite PowerShell.There is a key difference between the restoring a VM using the Azure portal and restoring a VM using PowerShell. Con PowerShell l'operazione di ripristino è completata quando sono stati creati i dischi e le informazioni sulla configurazione dal punto di ripristinoWith PowerShell, the restore operation is complete once the disks and configuration information from the recovery point are created. Se si desidera ripristinare e recuperare alcuni file da un backup della macchina virtuale di Azure, vedere la sezione relativa al recupero di fileIf you want to restore or recover few files from an Azure VM backup, refer to the file recovery section

Nota

L'operazione di ripristino non crea una macchina virtuale.The restore operation does not create a virtual machine.

Per creare una macchina virtuale dal disco, vedere la sezione Creare la macchina virtuale da dischi archiviati.To create a virtual machine from disk, see the section, Create the VM from stored disks. I passaggi di base per ripristinare una macchina virtuale di Azure sono:The basic steps to restore an Azure VM are:

  • Selezionare la macchina virtualeSelect the VM
  • Scegliere un punto di ripristinoChoose a recovery point
  • Ripristinare i dischiRestore the disks
  • Creare la macchina virtuale da dischi archiviatiCreate the VM from stored disks

Il grafico seguente mostra la gerarchia degli oggetti da RecoveryServicesVault fino a BackupRecoveryPoint.The following graphic shows the object hierarchy from the RecoveryServicesVault down to the BackupRecoveryPoint.

Gerarchia di oggetti dei servizi di ripristino con BackupContainer

Per ripristinare i dati di backup, identificare l'elemento sottoposto a backup e il punto di ripristino che contiene i dati temporizzati.To restore backup data, identify the backed-up item and the recovery point that holds the point-in-time data. Usare il cmdlet Restore-AzureRmRecoveryServicesBackupItem per ripristinare i dati dall'insieme di credenziali nell'account del cliente.Use the Restore-AzureRmRecoveryServicesBackupItem cmdlet to restore data from the vault to the customer's account.

Selezionare la macchina virtualeSelect the VM

Per ottenere l'oggetto di PowerShell che identifica l'elemento di backup corretto, iniziare dal contenitore nell'insieme di credenziali e procedere verso il basso nella gerarchia degli oggetti.To get the PowerShell object that identifies the right backup item, start from the container in the vault, and work your way down the object hierarchy. Per selezionare il contenitore che rappresenta la macchina virtuale, usare il cmdlet Get-AzureRmRecoveryServicesBackupContainer e inviarlo tramite pipe al cmdlet Get-AzureRmRecoveryServicesBackupItem.To select the container that represents the VM, use the Get-AzureRmRecoveryServicesBackupContainer cmdlet and pipe that to the Get-AzureRmRecoveryServicesBackupItem cmdlet.

PS C:\> $namedContainer = Get-AzureRmRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM"
PS C:\> $backupitem = Get-AzureRmRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM"

Scegliere un punto di ripristinoChoose a recovery point

Usare il cmdlet Get-AzureRmRecoveryServicesBackupRecoveryPoint per elencare tutti i punti di recupero dell'elemento di backup.Use the Get-AzureRmRecoveryServicesBackupRecoveryPoint cmdlet to list all recovery points for the backup item. Quindi scegliere il punto di ripristino per ripristinare.Then choose the recovery point to restore. Se non si sa quale punto di ripristino usare, è consigliabile scegliere il punto più recente RecoveryPointType = AppConsistent nell'elenco.If you are unsure which recovery point to use, it is a good practice to choose the most recent RecoveryPointType = AppConsistent point in the list.

Nello script seguente la variabile $rp è una matrice di punti di recupero per l'elemento di backup selezionato negli ultimi sette giorni.In the following script, the variable, $rp, is an array of recovery points for the selected backup item, from the past seven days. La matrice viene ordinata in ordine inverso di tempo con il punto di ripristino più recente in posizione 0 nell'indice.The array is sorted in reverse order of time with the latest recovery point at index 0. Per scegliere il punto di ripristino, usare l'indicizzazione standard della matrice di PowerShell.Use standard PowerShell array indexing to pick the recovery point. Nell'esempio $rp [0] seleziona il punto di ripristino più recente.In the example, $rp[0] selects the latest recovery point.

PS C:\> $startDate = (Get-Date).AddDays(-7)
PS C:\> $endDate = Get-Date
PS C:\> $rp = Get-AzureRmRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
PS C:\> $rp[0]
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

Ripristinare i dischiRestore the disks

Per ripristinare i dati e la configurazione di un elemento di backup a un punto di recupero, usare il cmdlet Restore-AzureRmRecoveryServicesBackupItem.Use the Restore-AzureRmRecoveryServicesBackupItem cmdlet to restore a backup item's data and configuration to a recovery point. Dopo aver identificato un punto di ripristino, usarlo come valore per il parametro -RecoveryPoint .Once you have identified a recovery point, use it as the value for the -RecoveryPoint parameter. Nell'esempio di codice precedente $rp [0] è il punto di ripristino da usare.In the previous sample code, $rp[0] was the recovery point to use. Nell'esempio di codice seguente $rp[0] è il punto di ripristino da usare per il ripristino del disco.In the following sample code, $rp[0] is the recovery point to use for restoring the disk.

Per ripristinare i dischi e le informazioni di configurazione:To restore the disks and configuration information:

PS C:\> $restorejob = Restore-AzureRmRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG"
PS C:\> $restorejob
WorkloadName     Operation          Status               StartTime                 EndTime            JobID
------------     ---------          ------               ---------                 -------          ----------
V2VM              Restore           InProgress           4/23/2016 5:00:30 PM                        cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Usare il cmdlet Wait-AzureRmRecoveryServicesBackupJob per attendere il completamento del processo di ripristino.Use the Wait-AzureRmRecoveryServicesBackupJob cmdlet to wait for the Restore job to complete.

PS C:\> Wait-AzureRmRecoveryServicesBackupJob -Job $restorejob -Timeout 43200

Dopo il completamento del processo di ripristino, usare il cmdlet Get-AzureRmRecoveryServicesBackupJobDetails per ottenere i dettagli dell'operazione di ripristino.Once the Restore job has completed, use the Get-AzureRmRecoveryServicesBackupJobDetails cmdlet to get the details of the restore operation. La proprietà JobDetails contiene le informazioni necessarie per ricreare la macchina virtuale.The JobDetails property has the information needed to rebuild the VM.

PS C:\> $restorejob = Get-AzureRmRecoveryServicesBackupJob -Job $restorejob
PS C:\> $details = Get-AzureRmRecoveryServicesBackupJobDetails -Job $restorejob

Dopo aver ripristinato i dischi, passare alla sezione successiva per creare la macchina virtuale.Once you restore the disks, go to the next section to create the VM.

Creare una macchina virtuale da dischi ripristinatiCreate a VM from restored disks

Dopo aver ripristinato i dischi, seguire questa procedura per creare e configurare la macchina virtuale dal disco.After you have restored the disks, use these steps to create and configure the virtual machine from disk.

Nota

Per creare macchine virtuali crittografate da dischi ripristinati, il ruolo di Azure deve disporre dell'autorizzazione per eseguire l'azione, ovvero Microsoft.KeyVault/vaults/deploy/action.To create encrypted VMs from restored disks, your Azure role must have permission to perform the action, Microsoft.KeyVault/vaults/deploy/action. Se il ruolo non dispone di questa autorizzazione, crearne uno personalizzato con questa azione.If your role does not have this permission, create a custom role with this action. Per altre informazioni, vedere Ruoli personalizzati nel Controllo degli accessi in base al ruolo di Azure.For more information, see Custom Roles in Azure RBAC.

  1. Ricercare i dettagli del processo nelle proprietà del disco ripristinato.Query the restored disk properties for the job details.

    PS C:\> $properties = $details.properties
    PS C:\> $storageAccountName = $properties["Target Storage Account Name"]
    PS C:\> $containerName = $properties["Config Blob Container Name"]
    PS C:\> $blobName = $properties["Config Blob Name"]
    
  2. Impostare il contesto di archiviazione di Azure e ripristinare il file di configurazione JSON.Set the Azure storage context and restore the JSON configuration file.

    PS C:\> Set-AzureRmCurrentStorageAccount -Name $storageaccountname -ResourceGroupName "testvault"
    PS C:\> $destination_path = "C:\vmconfig.json"
    PS C:\> Get-AzureStorageBlobContent -Container $containerName -Blob $blobName -Destination $destination_path
    PS C:\> $obj = ((Get-Content -Path $destination_path -Raw -Encoding Unicode)).TrimEnd([char]0x00) | ConvertFrom-Json
    
  3. Usare il file di configurazione JSON per creare la configurazione della macchina virtuale.Use the JSON configuration file to create the VM configuration.

    PS C:\> $vm = New-AzureRmVMConfig -VMSize $obj.'properties.hardwareProfile'.vmSize -VMName "testrestore"
    
  4. Collegare il disco del sistema operativo e i dischi dei dati.Attach the OS disk and data disks. In base alla configurazione delle macchine virtuali, vedere la sezione appropriata per visualizzare i rispettivi cmdlet:Depending on the configuration of your VMs, refer to the relevant section to view respective cmdlets:

    Macchine virtuali non gestite, non crittografateNon-managed, non-encrypted VMs

    Usare l'esempio seguente per macchine virtuali non gestite e non crittografate.Use the following sample for non-managed, non-encrypted VMs.

    PS C:\> Set-AzureRmVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
    PS C:\> $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
    PS C:\> foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
    {
    $vm = Add-AzureRmVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
    }
    

    Macchine virtuali non gestite, crittografate (solo con BEK)Non-managed, encrypted VMs (BEK only)

    Per le macchine virtuali non gestite e crittografate (solo con BEK), è necessario ripristinare il segreto nell'insieme di credenziali delle chiavi prima di collegare i dischi.For non-managed, encrypted VMs (encrypted using BEK only), you need to restore the secret to the key vault before you can attach disks. Per altre informazioni, vedere l'articolo Ripristinare una macchina virtuale codificata da un punto di ripristino di Backup di Azure.For more information, please see the article, Restore an encrypted virtual machine from an Azure Backup recovery point. L'esempio seguente illustra come collegare dischi del sistema operativo e i dati per le macchine virtuali crittografate.The following sample shows how to attach OS and data disks for encrypted VMs.

    PS C:\> $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    PS C:\> $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    PS C:\> Set-AzureRmVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows
    PS C:\> $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
    PS C:\> foreach($dd in $obj.'properties.storageProfile'.dataDisks)
     {
     $vm = Add-AzureRmVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
     }
    

    Macchine virtuali non gestite, crittografate (con BEK e KEK)Non-managed, encrypted VMs (BEK and KEK)

    Per le macchine virtuali non gestite e crittografate (con BEK e KEK), è necessario ripristinare la chiave e il segreto nell'insieme di credenziali delle chiavi prima di collegare i dischi.For non-managed, encrypted VMs (encrypted using BEK and KEK), you need to restore the key and secret to the key vault before you can attach disks. Per altre informazioni, vedere l'articolo Ripristinare una macchina virtuale codificata da un punto di ripristino di Backup di Azure.For more information, please see the article, Restore an encrypted virtual machine from an Azure Backup recovery point. L'esempio seguente illustra come collegare dischi del sistema operativo e i dati per le macchine virtuali crittografate.The following sample shows how to attach OS and data disks for encrypted VMs.

    PS C:\> $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    PS C:\> $kekUrl = "https://ContosoKeyVault.vault.azure.net:443/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
    PS C:\> $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    PS C:\> Set-AzureRmVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows
    PS C:\> $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
    PS C:\> foreach($dd in $obj.'properties.storageProfile'.dataDisks)
     {
     $vm = Add-AzureRmVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
     }
    

    Macchine virtuali gestite, non crittografateManaged, non-encrypted VMs

    Per macchine virtuali gestite e non crittografate, è necessario creare dischi gestiti dall'archiviazione BLOB e quindi collegarli.For managed non-encrypted VMs, you'll need to create managed disks from blob storage, and then attach the disks. Per informazioni dettagliate, vedere l'articolo Collegare un disco dati a una macchina virtuale Windows con PowerShell.For in-depth information, see the article, Attach a data disk to a Windows VM using PowerShell. Il codice di esempio seguente illustra come collegare dischi dati per macchine virtuali non crittografate.The following sample code shows how to attach the data disks for managed non-encrypted VMs.

    PS C:\> $storageType = "StandardLRS"
    PS C:\> $osDiskName = $vm.Name + "_osdisk"
    PS C:\> $osVhdUri = $obj.'properties.storageProfile'.osDisk.vhd.uri
    PS C:\> $diskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location "West US" -CreateOption Import -SourceUri $osVhdUri
    PS C:\> $osDisk = New-AzureRmDisk -DiskName $osDiskName -Disk $diskConfig -ResourceGroupName "test"
    PS C:\> Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $osDisk.Id -CreateOption "Attach" -Windows
    PS C:\> foreach($dd in $obj.'properties.storageProfile'.dataDisks)
     {
     $dataDiskName = $vm.Name + $dd.name ;
     $dataVhdUri = $dd.vhd.uri ;
     $dataDiskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location "West US" -CreateOption Import -SourceUri $dataVhdUri ;
     $dataDisk2 = New-AzureRmDisk -DiskName $dataDiskName -Disk $dataDiskConfig -ResourceGroupName "test" ;
     Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -ManagedDiskId $dataDisk2.Id -Lun $dd.Lun -CreateOption "Attach"
    }
    

    Macchine virtuali gestite, crittografate (solo con BEK)Managed, encrypted VMs (BEK only)

    Per le macchine virtuali gestite e crittografate (solo con BEK), sarà necessario creare dischi gestiti dall'archiviazione BLOB e quindi collegarli.For managed encrypted VMs (encrypted using BEK only), you'll need to create managed disks from blob storage, and then attach the disks. Per informazioni dettagliate, vedere l'articolo Collegare un disco dati a una macchina virtuale Windows con PowerShell.For in-depth information, see the article, Attach a data disk to a Windows VM using PowerShell. Il codice di esempio seguente illustra come collegare dischi di dati per le macchine virtuali crittografate.The following sample code shows how to attach the data disks for managed encrypted VMs.

    PS C:\> $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    PS C:\> $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    PS C:\> $storageType = "StandardLRS"
    PS C:\> $osDiskName = $vm.Name + "_osdisk"
    PS C:\> $osVhdUri = $obj.'properties.storageProfile'.osDisk.vhd.uri
    PS C:\> $diskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location "West US" -CreateOption Import -SourceUri $osVhdUri
    PS C:\> $osDisk = New-AzureRmDisk -DiskName $osDiskName -Disk $diskConfig -ResourceGroupName "test"
    PS C:\> Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $osDisk.Id -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows
    PS C:\> foreach($dd in $obj.'properties.storageProfile'.dataDisks)
    {
    $dataDiskName = $vm.Name + $dd.name ;
    $dataVhdUri = $dd.vhd.uri ;
    $dataDiskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location "West US" -CreateOption Import -SourceUri $dataVhdUri ;
    $dataDisk2 = New-AzureRmDisk -DiskName $dataDiskName -Disk $dataDiskConfig -ResourceGroupName "test" ;
    Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -ManagedDiskId $dataDisk2.Id -Lun $dd.Lun -CreateOption "Attach"
    }
    

    Macchine virtuali gestite, crittografate (con BEK e KEK)Managed, encrypted VMs (BEK and KEK)

    Per le macchine virtuali gestite e crittografate (con BEK e KEK) , è necessario creare dischi gestiti dall'archiviazione BLOB e quindi collegarli.For managed encrypted VMs (encrypted using BEK and KEK), you'll need to create managed disks from blob storage, and then attach the disks. Per informazioni dettagliate, vedere l'articolo Collegare un disco dati a una macchina virtuale Windows con PowerShell.For in-depth information, see the article, Attach a data disk to a Windows VM using PowerShell. Il codice di esempio seguente illustra come collegare dischi di dati per le macchine virtuali crittografate.The following sample code shows how to attach the data disks for managed encrypted VMs.

    PS C:\> $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    PS C:\> $kekUrl = "https://ContosoKeyVault.vault.azure.net:443/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
    PS C:\> $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    PS C:\> $storageType = "StandardLRS"
    PS C:\> $osDiskName = $vm.Name + "_osdisk"
    PS C:\> $osVhdUri = $obj.'properties.storageProfile'.osDisk.vhd.uri
    PS C:\> $diskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location "West US" -CreateOption Import -SourceUri $osVhdUri
    PS C:\> $osDisk = New-AzureRmDisk -DiskName $osDiskName -Disk $diskConfig -ResourceGroupName "test"
    PS C:\> Set-AzureRmVMOSDisk -VM $vm -ManagedDiskId $osDisk.Id -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows
    PS C:\> foreach($dd in $obj.'properties.storageProfile'.dataDisks)
    {
    $dataDiskName = $vm.Name + $dd.name ;
    $dataVhdUri = $dd.vhd.uri ;
    $dataDiskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location "West US" -CreateOption Import -SourceUri $dataVhdUri ;
    $dataDisk2 = New-AzureRmDisk -DiskName $dataDiskName -Disk $dataDiskConfig -ResourceGroupName "test" ;
    Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -ManagedDiskId $dataDisk2.Id -Lun $dd.Lun -CreateOption "Attach"
    }
    
  5. Configurare le impostazioni di rete.Set the Network settings.

    PS C:\> $nicName="p1234"
    PS C:\> $pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName "test" -Location "WestUS" -AllocationMethod Dynamic
    PS C:\> $vnet = Get-AzureRmVirtualNetwork -Name "testvNET" -ResourceGroupName "test"
    PS C:\> $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName "test" -Location "WestUS" -SubnetId $vnet.Subnets[$subnetindex].Id -PublicIpAddressId $pip.Id
    PS C:\> $vm=Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
    
  6. Creare la macchina virtuale.Create the virtual machine.

    PS C:\> New-AzureRmVM -ResourceGroupName "test" -Location "WestUS" -VM $vm
    

Ripristinare file da un backup della macchina virtuale di AzureRestore files from an Azure VM backup

Oltre al ripristino di dischi è anche possibile ripristinare singoli file da un backup della macchina virtuale di Azure.In addition to restoring disks, you can also restore individual files from an Azure VM backup. La funzionalità di ripristino di file consente di accedere a tutti i file in un punto di recupero specifico in modo da renderne possibile la gestione tramite la funzionalità Esplora file, in modo analogo a quanto avviene per i file normali.The restore files functionality gives access to all files in a recovery point and you can manage them via file explorer as you would do for normal files.

La procedura di base per il ripristino di un file dal backup della macchina virtuale di Azure si articola nei passaggi seguenti:The basic steps to restore a file from Azure VM backup are:

  • Selezionare la macchina virtualeSelect the VM
  • Scegliere un punto di ripristinoChoose a recovery point
  • Montare i dischi del punto di ripristinoMount the disks of recovery point
  • Copiare i file necessariCopy the required files
  • Smontare il discoUnmount the disk

Selezionare la macchina virtualeSelect the VM

Per ottenere l'oggetto di PowerShell che identifica l'elemento di backup corretto, iniziare dal contenitore nell'insieme di credenziali e procedere verso il basso nella gerarchia degli oggetti.To get the PowerShell object that identifies the right backup item, start from the container in the vault, and work your way down the object hierarchy. Per selezionare il contenitore che rappresenta la macchina virtuale, usare il cmdlet Get-AzureRmRecoveryServicesBackupContainer e inviarlo tramite pipe al cmdlet Get-AzureRmRecoveryServicesBackupItem.To select the container that represents the VM, use the Get-AzureRmRecoveryServicesBackupContainer cmdlet and pipe that to the Get-AzureRmRecoveryServicesBackupItem cmdlet.

PS C:\> $namedContainer = Get-AzureRmRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM"
PS C:\> $backupitem = Get-AzureRmRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM"

Scegliere un punto di ripristinoChoose a recovery point

Usare il cmdlet Get-AzureRmRecoveryServicesBackupRecoveryPoint per elencare tutti i punti di recupero dell'elemento di backup.Use the Get-AzureRmRecoveryServicesBackupRecoveryPoint cmdlet to list all recovery points for the backup item. Quindi scegliere il punto di ripristino per ripristinare.Then choose the recovery point to restore. Se non si sa quale punto di ripristino usare, è consigliabile scegliere il punto più recente RecoveryPointType = AppConsistent nell'elenco.If you are unsure which recovery point to use, it is a good practice to choose the most recent RecoveryPointType = AppConsistent point in the list.

Nello script seguente la variabile $rp è una matrice di punti di recupero per l'elemento di backup selezionato negli ultimi sette giorni.In the following script, the variable, $rp, is an array of recovery points for the selected backup item, from the past seven days. La matrice viene ordinata in ordine inverso di tempo con il punto di ripristino più recente in posizione 0 nell'indice.The array is sorted in reverse order of time with the latest recovery point at index 0. Per scegliere il punto di ripristino, usare l'indicizzazione standard della matrice di PowerShell.Use standard PowerShell array indexing to pick the recovery point. Nell'esempio $rp [0] seleziona il punto di ripristino più recente.In the example, $rp[0] selects the latest recovery point.

PS C:\> $startDate = (Get-Date).AddDays(-7)
PS C:\> $endDate = Get-Date
PS C:\> $rp = Get-AzureRmRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
PS C:\> $rp[0]
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

Montare i dischi del punto di ripristinoMount the disks of recovery point

Usare il cmdlet Get-AzureRmRecoveryServicesBackupRPMountScript per ottenere lo script necessario per montare tutti i dischi del punto di ripristino.Use the Get-AzureRmRecoveryServicesBackupRPMountScript cmdlet to get the script to mount all the disks of the recovery point.

Nota

I dischi sono montati come dischi collegati iSCSI al computer in cui viene eseguito lo script.The disks are mounted as iSCSI attached disks to the machine where the script is run. Di conseguenza l'esito dell'operazione è quasi istantaneo e non comporta alcun addebito.Hence it is near instantaneous and does NOT incur any charge

PS C:\> Get-AzureRmRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0]

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

Eseguire lo script nel computer in cui si vogliono recuperare i file.Run the script on the machine where you want to recover the files. È necessario immettere la password sopra riportata per eseguire lo script.You need to enter the password shown above to execute the script. Dopo aver collegato i dischi, è possibile utilizzare Esplora file di Windows per sfogliare i nuovi volumi e file.After the disks are attached, use the Windows file explorer to browse through the new volumes and files. Per altre informazioni, vedere la documentazione relativa al ripristino dei file.For more information refer to the file recovery documentation

Smontare i discoUnmount the disks

Dopo aver copiato i file necessari, smontare i dischi usando il cmdlet Disable-AzureRmRecoveryServicesBackupRPMountScript.After the required files are copied, unmount the disks by using the Disable-AzureRmRecoveryServicesBackupRPMountScript cmdlet. Questo passaggio è altamente consigliato perché in questo modo si garantisce la rimozione dell'accesso ai file del punto di ripristino.This is highly recommended as it makes sure that access is removed to the files of the recovery point

PS C:\> Disable-AzureRmRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0]

Passaggi successiviNext steps

Se si preferisce usare PowerShell per coinvolgere le risorse di Azure, vedere l'articolo PowerShell Distribuire e gestire il backup in Azure per server Windows/client Windows mediante PowerShell.If you prefer to use PowerShell to engage with your Azure resources, see the PowerShell article, Deploy and Manage Backup for Windows Server. Se si gestiscono i backup DPM, vedere l'articolo Distribuire e gestire il backup per DPM.If you manage DPM backups, see the article, Deploy and Manage Backup for DPM. Entrambi gli articoli prevedono due versioni: una per le distribuzioni con Resource Manager, l'altra per le distribuzioni classiche.Both of these articles have a version for Resource Manager deployments and Classic deployments.