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

Questo articolo descrive come usare Azure PowerShell per il backup e il ripristino delle macchine virtuali di Azure.This article shows you how to use Azure PowerShell for backup and recovery of Azure VMs. Azure offre due diversi modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and Classic. Questo articolo illustra l'uso del modello di distribuzione classica per il backup di dati nell'insieme di credenziali di backup.This article covers using the Classic deployment model to back up data to a Backup vault. Se nella sottoscrizione non è stato creato un insieme di credenziali di backup, vedere la versione relativa a Resource Manager di questo articolo, Usare i cmdlet AzureRM.RecoveryServices.Backup per eseguire il backup di macchine virtuali.If you have not created a Backup vault in your subscription, see the Resource Manager version of this article, Use AzureRM.RecoveryServices.Backup cmdlets to back up virtual machines. Microsoft consiglia di usare il modello di Gestione risorse per le distribuzioni più recenti.Microsoft recommends that most new deployments use the Resource Manager model.

Importante

È ora possibile aggiornare gli insiemi di credenziali di Backup ad insiemi di credenziali dei servizi di ripristino.You can now upgrade your Backup vaults to Recovery Services vaults. Per altre informazioni, vedere l'articolo Aggiornare un insieme di credenziali di Backup a un insieme di credenziali di Servizi di ripristino.For details, see the article Upgrade a Backup vault to a Recovery Services vault. Microsoft consiglia di aggiornare gli insiemi di credenziali di Backup a insiemi di credenziali dei servizi di ripristino.Microsoft encourages you to upgrade your Backup vaults to Recovery Services vaults.
Dopo il 30 novembre 2017 non sarà possibile usare PowerShell per creare insiemi di credenziali di backup.After November 30, 2017, you will not be able to use PowerShell to create Backup vaults.
Entro il 30 novembre 2017:By November 30, 2017:

  • Tutti gli insiemi di credenziali di backup rimanenti verranno aggiornati automaticamente a insiemi di credenziali dei servizi di ripristino.All remaining Backup vaults will be automatically upgraded to Recovery Services vaults.
  • e non sarà più possibile accedere ai dati di backup nel portale classico.You won't be able to access your backup data in the classic portal. Sarà possibile invece usare il portale di Azure per accedere ai dati di backup negli insiemi di credenziali di servizi di ripristino.Instead, use the Azure portal to access your backup data in Recovery Services vaults.

ConcettiConcepts

Questo articolo fornisce informazioni specifiche per i cmdlet di PowerShell usati per eseguire il backup di macchine virtuali.This article provides information specific to the PowerShell cmdlets used to back up virtual machines. Per informazioni introduttive sulla protezione delle macchine virtuali di Azure, vedere Pianificare l'infrastruttura di backup delle macchine virtuali in Azure.For introductory information about protecting Azure VMs, please see Plan your VM backup infrastructure in Azure.

Nota

Prima di iniziare, vedere i prerequisiti necessari per usare Backup di Azure e le limitazioni della soluzione corrente di backup delle VM.Before you start, read the prerequisites required to work with Azure Backup, and the limitations of the current VM backup solution.

Per un uso efficace di PowerShell, è opportuno comprendere la gerarchia degli oggetti e da dove iniziare.To use PowerShell effectively, take a moment to understand the hierarchy of objects and from where to start.

Gerarchia oggetti

I due flussi più importanti sono quelli relativi all'attivazione della protezione per una macchina virtuale e al ripristino dei dati da un punto di ripristino.The two most important flows are enabling protection for a VM, and restoring data from a recovery point. Questo articolo fornisce le informazioni necessarie per acquisire familiarità con l'uso dei cmdlet di PowerShell per abilitare questi due scenari.The focus of this article is to help you become adept at working with the PowerShell cmdlets to enable these two scenarios.

Installazione e registrazioneSetup and Registration

Per iniziare:To begin:

  1. Scaricare la versione più recente di PowerShell (la versione minima richiesta è: 1.0.0)Download latest PowerShell (minimum version required is : 1.0.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 *azurermbackup*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Backup-AzureRmBackupItem                           1.0.1      AzureRM.Backup
Cmdlet          Disable-AzureRmBackupProtection                    1.0.1      AzureRM.Backup
Cmdlet          Enable-AzureRmBackupContainerReregistration        1.0.1      AzureRM.Backup
Cmdlet          Enable-AzureRmBackupProtection                     1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupContainer                         1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupItem                              1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupJob                               1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupJobDetails                        1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupProtectionPolicy                  1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupRecoveryPoint                     1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupVault                             1.0.1      AzureRM.Backup
Cmdlet          Get-AzureRmBackupVaultCredentials                  1.0.1      AzureRM.Backup
Cmdlet          New-AzureRmBackupProtectionPolicy                  1.0.1      AzureRM.Backup
Cmdlet          New-AzureRmBackupRetentionPolicyObject             1.0.1      AzureRM.Backup
Cmdlet          New-AzureRmBackupVault                             1.0.1      AzureRM.Backup
Cmdlet          Register-AzureRmBackupContainer                    1.0.1      AzureRM.Backup
Cmdlet          Remove-AzureRmBackupProtectionPolicy               1.0.1      AzureRM.Backup
Cmdlet          Remove-AzureRmBackupVault                          1.0.1      AzureRM.Backup
Cmdlet          Restore-AzureRmBackupItem                          1.0.1      AzureRM.Backup
Cmdlet          Set-AzureRmBackupProtectionPolicy                  1.0.1      AzureRM.Backup
Cmdlet          Set-AzureRmBackupVault                             1.0.1      AzureRM.Backup
Cmdlet          Stop-AzureRmBackupJob                              1.0.1      AzureRM.Backup
Cmdlet          Unregister-AzureRmBackupContainer                  1.0.1      AzureRM.Backup
Cmdlet          Wait-AzureRmBackupJob                              1.0.1      AzureRM.Backup

Le attività di installazione e registrazione seguenti possono essere automatizzate tramite PowerShell:The following setup and registration tasks can be automated with PowerShell:

  • Creare un insieme di credenziali per il backupCreate a backup vault
  • Registrazione delle macchine virtuali nel servizio Backup di AzureRegistering the VMs with the Azure Backup service

Creare un insieme di credenziali per il backupCreate a backup vault

Avviso

I clienti che usano il servizio Backup di Azure per la prima volta, dovranno registrare il provider di Backup di Azure da usare con la propria sottoscrizione.For customers using Azure Backup for the first time, you need to register the Azure Backup provider to be used with your subscription. A tale scopo, eseguire il comando seguente: Register-AzureRmResourceProvider -ProviderNamespace "Microsoft.Backup"This can be done by running the following command: Register-AzureRmResourceProvider -ProviderNamespace "Microsoft.Backup"

È possibile creare un nuovo insieme di credenziali per il backup usando il cmdlet New-AzureRmBackupVault .You can create a new backup vault using the New-AzureRmBackupVault cmdlet. L’archivio di backup è una risorsa ARM, pertanto è necessario inserirlo all'interno di un gruppo di risorse.The backup vault is an ARM resource, so you need to place it within a Resource Group. Eseguire i comandi seguenti in una console di Azure PowerShell con privilegi elevati:In an elevated Azure PowerShell console, run the following commands:

PS C:\> New-AzureRmResourceGroup –Name “test-rg” –Location “West US”
PS C:\> $backupvault = New-AzureRmBackupVault –ResourceGroupName “test-rg” –Name “test-vault” –Region “West US” –Storage GeoRedundant

È possibile ottenere un elenco di tutti gli insiemi di credenziali per il backup in una determinata sottoscrizione usando il cmdlet Get-AzureRmBackupVault .You can get a list of all the backup vaults in a given subscription using the Get-AzureRmBackupVault cmdlet.

Nota

È consigliabile archiviare l'oggetto insieme di credenziali di backup in una variabile.It is convenient to store the backup vault object into a variable. L'oggetto insieme di credenziali è necessario come input per molti cmdlet di Azure Backup.The vault object is needed as an input for many Azure Backup cmdlets.

Registrazione delle macchine virtualiRegistering the VMs

Il primo passaggio per la configurazione del backup nel servizio Backup di Azure prevede la registrazione del computer o della macchina virtuale in un insieme di credenziali del servizio Backup di Azure.The first step towards configuring backup with Azure Backup is to register your machine or VM with an Azure Backup vault. Il cmdlet Register-AzureRmBackupContainer accetta le informazioni di input di una macchina virtuale IaaS di Azure e le registra nell'insieme di credenziali specificato.The Register-AzureRmBackupContainer cmdlet takes the input information of an Azure IaaS virtual machine and registers it with the specified vault. L'operazione di registrazione associa la macchina virtuale di Azure all'insieme di credenziali di backup e tiene traccia della macchina virtuale per la durata del backup.The register operation associates the Azure virtual machine with the backup vault and tracks the VM through the backup lifecycle.

L'operazione di registrazione della macchina virtuale con il servizio Backup di Azure crea un oggetto contenitore di livello superiore.Registering your VM with the Azure Backup service creates a top-level container object. Un contenitore in genere contiene più elementi di cui si può eseguire il backup, ma nel caso delle macchine virtuali sarà presente un solo elemento di backup per il contenitore.A container typically contains multiple items that can be backed up, but in the case of VMs there will be only one backup item for the container.

PS C:\> $registerjob = Register-AzureRmBackupContainer -Vault $backupvault -Name "testvm" -ServiceName "testvm"

Macchine virtuali del servizio Backup di AzureBackup Azure VMs

Creare i criteri di protezioneCreate a protection policy

Non è obbligatorio creare nuovi criteri di protezione per avviare il backup delle macchine virtuali.It is not mandatory to create a new protection policy to start backup of your VMs. Insieme di credenziali include 'criteri predefiniti' che possono essere usati per abilitare rapidamente la protezione e che possono essere modificati in un secondo momento per impostare i dettagli corretti.The vault comes with a 'Default Policy' that can be used to quickly enable protection, and then edited later with the right details. È possibile ottenere un elenco dei criteri disponibili usando il cmdlet Get-AzureRmBackupProtectionPolicy :You can get a list of the policies available in the vault by using the Get-AzureRmBackupProtectionPolicy cmdlet:

PS C:\> Get-AzureRmBackupProtectionPolicy -Vault $backupvault

Name                      Type               ScheduleType       BackupTime
----                      ----               ------------       ----------
DefaultPolicy             AzureVM            Daily              26-Aug-15 12:30:00 AM

Nota

Il fuso orario del campo BackupTime in PowerShell è UTC.The timezone of the BackupTime field in PowerShell is UTC. Tuttavia, quando l'orario di backup viene visualizzato nel portale di Azure, il fuso orario è allineato a quello del sistema locale assieme alla differenza dall'ora UTC.However, when the backup time is shown in the Azure portal, the timezone is aligned to your local system along with the UTC offset.

I criteri di backup sono associati ai criteri di conservazione.A backup policy is associated with at least one retention policy. I criteri di conservazione definiscono per quanto tempo un punto di ripristino viene mantenuto nel servizio Backup di Azure.The retention policy defines how long a recovery point is kept with Azure Backup. Il cmdlet New-AzureRmBackupRetentionPolicy crea oggetti PowerShell che includono le informazioni relative ai criteri di conservazione.The New-AzureRmBackupRetentionPolicy cmdlet creates PowerShell objects that hold retention policy information. Questi oggetti di criteri di conservazione vengono usati come input per il cmdlet New-AzureRmBackupProtectionPolicy o direttamente con il cmdlet Enable-AzureRmBackupProtection.These retention policy objects are used as inputs to the New-AzureRmBackupProtectionPolicy cmdlet, or directly with the Enable-AzureRmBackupProtection cmdlet.

I criteri di backup consentono di definire quando viene eseguito il backup di un elemento e con quale frequenza.A backup policy defines when and how often the backup of an item is done. Il cmdlet New-AzureRmBackupProtectionPolicy crea un oggetto PowerShell che contiene le informazioni relative ai criteri di backup.The New-AzureRmBackupProtectionPolicy cmdlet creates a PowerShell object that holds backup policy information. I criteri di backup vengono usati come input per il cmdlet Enable-AzureRmBackupProtection .The backup policy is used as an input to the Enable-AzureRmBackupProtection cmdlet.

PS C:\> $Daily = New-AzureRmBackupRetentionPolicyObject -DailyRetention -Retention 30
PS C:\> $newpolicy = New-AzureRmBackupProtectionPolicy -Name DailyBackup01 -Type AzureVM -Daily -BackupTime ([datetime]"3:30 PM") -RetentionPolicy $Daily -Vault $backupvault

Name                      Type               ScheduleType       BackupTime
----                      ----               ------------       ----------
DailyBackup01             AzureVM            Daily              01-Sep-15 3:30:00 PM

Abilitare la protezioneEnable protection

Per abilitare la protezione sono necessari due oggetti, l'elemento e i criteri, ed entrambi devono appartenere allo stesso insieme di credenziali.Enabling protection involves two objects - the Item and the Policy, and both need to belong to the same vault. Dopo aver associato i criteri all'elemento, il flusso di lavoro di backup verrà avviato in base alla pianificazione del backup.Once the policy has been associated with the item, the backup workflow will kick in at the defined schedule.

PS C:\> Get-AzureRmBackupContainer -Type AzureVM -Status Registered -Vault $backupvault | Get-AzureRmBackupItem | Enable-AzureRmBackupProtection -Policy $newpolicy

Backup inizialeInitial backup

La pianificazione del backup esegue la copia iniziale completa dell'elemento e la copia incrementale per i backup successivi.The backup schedule will take care of doing the full initial copy for the item and the incremental copy for the subsequent backups. Se si vuole forzare il backup iniziale in modo che venga eseguito a una determinata ora o immediatamente, usare il cmdlet Backup-AzureRmBackupItem :However, if you want to force the initial backup to happen at a certain time or even immediately then use the Backup-AzureRmBackupItem cmdlet:

PS C:\> $container = Get-AzureRmBackupContainer -Vault $backupvault -Type AzureVM -Name "testvm"
PS C:\> $backupjob = Get-AzureRmBackupItem -Container $container | Backup-AzureRmBackupItem
PS C:\> $backupjob

WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
testvm          Backup          InProgress      01-Sep-15 12:24:01 PM  01-Jan-01 12:00:00 AM

Nota

Il fuso orario dei campi StartTime ed EndTime visualizzati in PowerShell è UTC.The timezone of the StartTime and EndTime fields shown in PowerShell is UTC. Tuttavia, quando le informazioni corrispondenti vengono visualizzate nel portale di Azure, il fuso orario è allineato a quello dell'orologio del sistema locale.However, when the similar information is shown in the Azure portal, the timezone is aligned to your local system clock.

Monitoraggio di un processo di backupMonitoring a backup job

La maggior parte delle operazioni a esecuzione prolungata in Azure Backup è modellata come processo.Most long-running operations in Azure Backup are modelled as a job. Questo consente di semplificare il monitoraggio dell'avanzamento senza dover tenere aperto continuamente il portale di Azure.This makes it easy to track progress without having to keep the Azure portal open at all times.

Per ottenere lo stato più recente di un processo in corso, usare il cmdlet Get-AzureRmBackupJob .To get the latest status of an in-progress job, use the Get-AzureRmBackupJob cmdlet.

PS C:\> $joblist = Get-AzureRmBackupJob -Vault $backupvault -Status InProgress
PS C:\> $joblist[0]

WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
testvm          Backup          InProgress      01-Sep-15 12:24:01 PM  01-Jan-01 12:00:00 AM

Invece di eseguire il poll dei processi per ottenere lo stato di completamento, operazione non necessaria che prevede codice aggiuntivo, è più facile usare il cmdlet Wait-AzureRmBackupJob .Instead of polling these jobs for completion - which is unnecessary, additional code - it is simpler to use the Wait-AzureRmBackupJob cmdlet. Se usato in uno script, il cmdlet sospende l'esecuzione fino al completamento del processo o fino a quando non viene raggiunto il valore di timeout specificato.When used in a script, the cmdlet will pause the execution until either the job completes or the specified timeout value is reached.

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

Ripristinare una macchina virtuale di AzureRestore an Azure VM

Per ripristinare i dati di backup, è necessario identificare l'elemento sottoposto a backup e il punto di ripristino che contiene i dati temporizzati.In order to restore backup data, you need to identify the backed-up Item and the Recovery Point that holds the point-in-time data. Queste informazioni vengono fornite al cmdlet Restore-AzureRmBackupItem per avviare un ripristino dei dati dall'insieme di credenziali all'account del cliente.This information is supplied to the Restore-AzureRmBackupItem cmdlet to initiate a restore of data from the vault to the customer's account.

Selezionare la macchina virtualeSelect the VM

Per ottenere l'oggetto PowerShell che individua l'elemento di backup corretto, è necessario iniziare dal contenitore nell'insieme di credenziali, quindi procedere verso il basso nella gerarchia degli oggetti.To get the PowerShell object that identifies the right backup Item, you need to start from the Container in the vault, and work your way down object hierarchy. Per selezionare il contenitore che rappresenta la VM, usare il cmdlet Get-AzureRmBackupContainer e inviarlo tramite pipe al cmdlet Get-AzureRmBackupItem.To select the container that represents the VM, use the Get-AzureRmBackupContainer cmdlet and pipe that to the Get-AzureRmBackupItem cmdlet.

PS C:\> $backupitem = Get-AzureRmBackupContainer -Vault $backupvault -Type AzureVM -name "testvm" | Get-AzureRmBackupItem

Scegliere un punto di ripristinoChoose a recovery point

A questo punto è possibile visualizzare l'elenco di tutti i punti di ripristino per l'elemento di backup usando il cmdlet Get-AzureRmBackupRecoveryPoint e scegliere il punto di ripristino.You can now list all the recovery points for the backup item using the Get-AzureRmBackupRecoveryPoint cmdlet, and choose the recovery point to restore. In genere, gli utenti selezionano il punto di ripristino AppConsistent più recente nell'elenco.Typically users pick the most recent AppConsistent point in the list.

PS C:\> $rp =  Get-AzureRmBackupRecoveryPoint -Item $backupitem
PS C:\> $rp

RecoveryPointId    RecoveryPointType  RecoveryPointTime      ContainerName
---------------    -----------------  -----------------      -------------
15273496567119     AppConsistent      01-Sep-15 12:27:38 PM  iaasvmcontainer;testvm;testv...

La variabile $rp è una matrice di punti di ripristino per l'elemento di backup selezionato, in ordine cronologico inverso: il punto di ripristino più recente è all'indice 0.The variable $rp is an array of recovery points for the selected backup item, sorted in reverse order of time - the latest recovery point is 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. Ad esempio, $rp[0] selezionerà l'ultimo punto di ripristino.For example: $rp[0] will select the latest recovery point.

Ripristino dei dischiRestoring disks

Le operazioni di ripristino eseguite tramite il portale di Azure e tramite Azure PowerShell presentano una differenza importante.There is a key difference between the restore operations done through the Azure portal and through Azure PowerShell. Con PowerShell, l'operazione di ripristino si arresta una volta ripristinati i dischi e le informazioni di configurazione dal punto di ripristinoWith PowerShell, the restore operation stops at restoring the disks and config information from the recovery point. e non crea una macchina virtuale.It does not create a virtual machine.

Avviso

Il cmdlet Restore-AzureRmBackupItem non crea una macchina virtuale.The Restore-AzureRmBackupItem does not create a VM. Ripristina semplicemente i dischi nell'account di archiviazione specificato.It only restores the disks to the specified storage account. L'operazione di ripristino tramite il portale di Azure prevede un comportamento diverso.This is not the same behavior you will experience in the Azure portal.

PS C:\> $restorejob = Restore-AzureRmBackupItem -StorageAccountName "DestAccount" -RecoveryPoint $rp[0]
PS C:\> $restorejob

WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
testvm          Restore         InProgress      01-Sep-15 1:14:01 PM   01-Jan-01 12:00:00 AM

È possibile ottenere i dettagli dell'operazione di ripristino usando il cmdlet Get-AzureRmBackupJobDetails al termine del processo di ripristino.You can get the details of the restore operation using the Get-AzureRmBackupJobDetails cmdlet once the Restore job has completed. La proprietà ErrorDetails conterrà le informazioni necessarie per ricreare la macchina virtuale.The ErrorDetails property will have the information needed to rebuild the VM.

PS C:\> $restorejob = Get-AzureRmBackupJob -Job $restorejob
PS C:\> $details = Get-AzureRmBackupJobDetails -Job $restorejob

Creare la macchina virtualeBuild the VM

È possibile creare la macchina virtuale dai dischi ripristinati tramite i cmdlet di PowerShell per la gestione del servizio Azure precedenti, i nuovi modelli di Azure Resource Manager o il portale di Azure.Building the VM out of the restored disks can be done using the older Azure Service Management PowerShell cmdlets, the new Azure Resource Manager templates, or even using the Azure portal. Questo esempio rapido mostra come eseguire l'operazione usando i cmdlet per la gestione del servizio Azure.In a quick example, we will show how to get there using the Azure Service Management cmdlets.

$properties  = $details.Properties

$storageAccountName = $properties["Target Storage Account Name"]
$containerName = $properties["Config Blob Container Name"]
$blobName = $properties["Config Blob Name"]

$keys = Get-AzureStorageKey -StorageAccountName $storageAccountName
$storageAccountKey = $keys.Primary
$storageContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey


$destination_path = "C:\Users\admin\Desktop\vmconfig.xml"
Get-AzureStorageBlobContent -Container $containerName -Blob $blobName -Destination $destination_path -Context $storageContext


$obj = [xml](((Get-Content -Path $destination_path -Encoding UniCode)).TrimEnd([char]0x00))
$pvr = $obj.PersistentVMRole
$os = $pvr.OSVirtualHardDisk
$dds = $pvr.DataVirtualHardDisks
$osDisk = Add-AzureDisk -MediaLocation $os.MediaLink -OS $os.OS -DiskName "panbhaosdisk"
$vm = New-AzureVMConfig -Name $pvr.RoleName -InstanceSize $pvr.RoleSize -DiskName $osDisk.DiskName

if (!($dds -eq $null))
{
    foreach($d in $dds.DataVirtualHardDisk)
    {
        $lun = 0
        if(!($d.Lun -eq $null))
        {
            $lun = $d.Lun
        }
        $name = "panbhadataDisk" + $lun
        Add-AzureDisk -DiskName $name -MediaLocation $d.MediaLink
        $vm | Add-AzureDataDisk -Import -DiskName $name -LUN $lun
    }
}

New-AzureVM -ServiceName "panbhasample" -Location "SouthEast Asia" -VM $vm

Per altre informazioni su come creare una macchina virtuale dai dischi ripristinati, vedere i cmdlet seguenti:For more information on how to build a VM from the restored disks, read about the following cmdlets:

Esempi di codiceCode samples

1. Ottenere lo stato di completamento delle sottoattività dei processi1. Get the completion status of job sub-tasks

Per monitorare lo stato di completamento delle singole sottoattività si può usare il cmdlet Get-AzureRmBackupJobDetails :To track the completion status of individual sub-tasks, you can use the Get-AzureRmBackupJobDetails cmdlet:

PS C:\> $details = Get-AzureRmBackupJobDetails -JobId $backupjob.InstanceId -Vault $backupvault
PS C:\> $details.SubTasks

Name                                                        Status
----                                                        ------
Take Snapshot                                               Completed
Transfer data to Backup vault                               InProgress

2. Creare un report settimanale o giornaliero dei processi di backup2. Create a daily/weekly report of backup jobs

In genere, gli amministratori vogliono sapere quali processi di backup sono stati eseguiti nelle ultime 24 ore e conoscerne lo stato.Administrators typically want to know what backup jobs ran in the last 24 hours, the status of those backup jobs. Inoltre, conoscere la quantità di dati trasferiti consente agli amministratori di valutare l'utilizzo mensile di dati.Additionally, the amount of data transferred gives administrators a way to estimate their monthly data usage. Lo script seguente estrae i dati non elaborati dal servizio Azure Backup e visualizza le informazioni nella console di PowerShell.The script below pulls the raw data from the Azure Backup service and displays the information in the PowerShell console.

param(  [Parameter(Mandatory=$True,Position=1)]
        [string]$backupvaultname,

        [Parameter(Mandatory=$False,Position=2)]
        [int]$numberofdays = 7)


#Initialize variables
$DAILYBACKUPSTATS = @()
$backupvault = Get-AzureRmBackupVault -Name $backupvaultname
$enddate = ([datetime]::Today).AddDays(1)
$startdate = ([datetime]::Today)

for( $i = 1; $i -le $numberofdays; $i++ )
{
    # We query one day at a time because pulling 7 days of data might be too much
    $dailyjoblist = Get-AzureRmBackupJob -Vault $backupvault -From $startdate -To $enddate -Type AzureVM -Operation Backup
    Write-Progress -Activity "Getting job information for the last $numberofdays days" -Status "Day -$i" -PercentComplete ([int]([decimal]$i*100/$numberofdays))

    foreach( $job in $dailyjoblist )
    {
        #Extract the information for the reports
        $newstatsobj = New-Object System.Object
        $newstatsobj | Add-Member -Type NoteProperty -Name Date -Value $startdate
        $newstatsobj | Add-Member -Type NoteProperty -Name VMName -Value $job.WorkloadName
        $newstatsobj | Add-Member -Type NoteProperty -Name Duration -Value $job.Duration
        $newstatsobj | Add-Member -Type NoteProperty -Name Status -Value $job.Status

        $details = Get-AzureRmBackupJobDetails -Job $job
        $newstatsobj | Add-Member -Type NoteProperty -Name BackupSize -Value $details.Properties["Backup Size"]
        $DAILYBACKUPSTATS += $newstatsobj
    }

    $enddate = $enddate.AddDays(-1)
    $startdate = $startdate.AddDays(-1)
}

$DAILYBACKUPSTATS | Out-GridView

Se si vogliono aggiungere funzionalità per la creazione di grafici all'output del report, leggere il post Charting with PowerShellIf you want to add charting capabilities to this report output, learn from the TechNet blog post Charting with PowerShell

Passaggi successiviNext steps

Se si preferisce usare PowerShell per interagire con le risorse di Azure, vedere l'articolo relativo a PowerShell per la protezione di Windows Server, Distribuire e gestire il backup per Windows Server.If you prefer using PowerShell to engage with your Azure resources, check out the PowerShell article for protecting Windows Server, Deploy and Manage Backup for Windows Server. È disponibile anche un articolo relativo a PowerShell per la gestione dei backup di DPM, Distribuire e gestire il backup per DPM.There is also a PowerShell article for managing DPM backups, Deploy and Manage Backup for DPM. Entrambi gli articoli prevedono due versioni: una per la distribuzione con Resource Manager, l’altra per la distribuzione classica.Both of these articles have a version for Resource Manager deployments as well as Classic deployments.