Implementación y administración de copias de seguridad en Azure para Windows Server o cliente de Windows mediante PowerShell

En este artículo se muestra cómo usar PowerShell para configurar Azure Backup en Windows Server o una versión cliente de Windows y para administrar copias de seguridad y recuperaciones.

Instalar Azure Powershell

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Para empezar, instale la versión más reciente de PowerShell.

Creación de un almacén de Recovery Services

Los siguientes pasos le guiarán por el proceso de creación de un almacén de Recovery Services. Un almacén de Recovery Services no es lo mismo que un almacén de copia de seguridad.

  1. Si usa Azure Backup por primera vez, debe usar el cmdlet Register-AzResourceProvider para registrar el proveedor de Azure Recovery Services con su suscripción.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  2. El almacén de Recovery Services es un recurso de Azure Resource Manager, por lo que deberá colocarlo dentro de un grupo de recursos. Puede usar un grupo de recursos existente o crear uno nuevo. Al crear un nuevo grupo de recursos, especifique su nombre y su ubicación.

    New-AzResourceGroup –Name "test-rg" –Location "WestUS"
    
  3. Use el cmdlet New-AzRecoveryServicesVault para crear el nuevo almacén. Asegúrese de especificar para el almacén la misma ubicación del grupo de recursos.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName " test-rg" -Location "WestUS"
    
  4. Especifique el tipo de redundancia de almacenamiento que se usará. Puede usar Almacenamiento con redundancia local (LRS), Almacenamiento con redundancia geográfica (GRS): o Almacenamiento con redundancia de zona (ZRS). En el ejemplo siguiente se muestra que la opción -BackupStorageRedundancy para testVault está establecida en GeoRedundant.

    Sugerencia

    Muchos de los cmdlets de Azure Backup requieren el objeto de almacén de Recovery Services como entrada. Por este motivo, es conveniente almacenar el objeto de almacén de Recovery Services de Backup en una variable.

    $Vault1 = Get-AzRecoveryServicesVault –Name "testVault"
    Set-AzRecoveryServicesBackupProperties -Vault $Vault1 -BackupStorageRedundancy GeoRedundant
    

Visualización de los almacenes de una suscripción

Use Get-AzRecoveryServicesVault para ver la lista de todos los almacenes de la suscripción actual. Este comando se puede usar para comprobar que se ha creado un almacén o para ver cuáles almacenes están disponibles en la suscripción.

Ejecute el comando Get-AzRecoveryServicesVault y se mostrarán todos los almacenes de la suscripción.

Get-AzRecoveryServicesVault
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

Actualización del agente de MARS

Las versiones del agente de Microsoft Azure Recovery Services (MARS) inferiores a la 2.0.9083.0 tienen una dependencia en Azure Access Control Service. El agente de MARS también se conoce como agente de Azure Backup.

En 2018, Azure retiró Azure Access Control Service. A partir del 19 de marzo de 2018, todas las versiones del agente MARS inferiores a la 2.0.9083.0 sufrirán errores de copia de seguridad. Para evitar o resolver dichos errores, actualice el agente de MARS a la versión más reciente. Para identificar los servidores que necesitan una actualización del agente de MARS, siga los pasos de Actualización del agente de Microsoft Azure Recovery Services (MARS).

El agente de MARS se usa para hacer copias de seguridad de archivos, carpetas y datos de estado del sistema en Azure. System Center DPM y Azure Backup Server usan al agente de MARS para hacer una copia de seguridad de los datos en Azure.

Instalación del agente de Azure Backup

Antes de instalar el agente de Azure Backup, necesitará tener el instalador descargado y disponible en el servidor de Windows. Puede obtener la versión más reciente del instalador en el Centro de descarga de Microsoft o en la página Panel del almacén de Recovery Services. Guarde el instalador en una ubicación que tenga fácil acceso, como C:\Downloads\*.

Como alternativa, use PowerShell para obtener la aplicación de descarga:

$MarsAURL = 'https://aka.ms/Azurebackup_Agent'
$WC = New-Object System.Net.WebClient
$WC.DownloadFile($MarsAURL,'C:\downloads\MARSAgentInstaller.exe')
C:\Downloads\MARSAgentInstaller.exe /q

Para instalar el agente, ejecute el comando siguiente en una consola de PowerShell con privilegios elevados:

MARSAgentInstaller.exe /q

Esto instala el agente con todas las opciones predeterminadas. La instalación está unos minutos en segundo plano. Si no se especifica la opción /nu, se abrirá la ventana de Windows Update al final de la instalación para comprobar si hay actualizaciones. Una vez instalado, el agente se mostrará en la lista de programas instalados.

Para ver la lista de programas instalados, vaya a Panel de Control>Programas>Programas y características.

Agent installed

Opción de instalación

Para ver todas las opciones disponibles a través de la línea de comandos, use el siguiente comando:

MARSAgentInstaller.exe /?

Las opciones disponibles incluyen:

Opción Detalles Valor predeterminado
/q Instalación silenciosa -
/p:"ubicación" Ruta de acceso a la carpeta de instalación para el agente de Azure Backup. C:\Archivos de programa\Microsoft Azure Recovery Services Agent
/s:"ubicación" Ruta de acceso a la carpeta de caché para el agente de Azure Backup. C:\Archivos de programa\Microsoft Azure Recovery Services Agent\Scratch
/m Participación en Microsoft Update -
/nu No busca actualizaciones una vez completada la instalación -
/d Desinstala el agente de Microsoft Azure Recovery Services. -
/ph Dirección host del proxy -
/po Número de puerto del host de proxy -
/pu Nombre de usuario del host de proxy -
/pw Contraseña de proxy -

Registro de Windows Server o el equipo cliente de Windows en un almacén de Recovery Services

Después de crear el almacén de Recovery Services, descargue el agente más reciente y las credenciales de almacén y guárdelas en una ubicación adecuada como C:\Downloads.

$CredsPath = "C:\downloads"
$CredsFilename = Get-AzRecoveryServicesVaultSettingsFile -Backup -Vault $Vault1 -Path $CredsPath

Registro mediante el módulo Az de PowerShell

Nota:

En la versión Az 3.5.0, se corrige un error con la generación del certificado de almacén. Use la versión Az 3.5.0 o posterior para descargar un certificado de almacén.

En el módulo Az más reciente de PowerShell, la descarga de las credenciales del almacén requiere un certificado autofirmado debido a las limitaciones de la plataforma subyacente. En el ejemplo siguiente se muestra cómo proporcionar un certificado autofirmado y descargar las credenciales del almacén.

$dt = $(Get-Date).ToString("M-d-yyyy")
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -FriendlyName 'test-vaultcredentials' -subject "Windows Azure Tools" -KeyExportPolicy Exportable -NotAfter $(Get-Date).AddHours(48) -NotBefore $(Get-Date).AddHours(-24) -KeyProtection None -KeyUsage None -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2") -Provider "Microsoft Enhanced Cryptographic Provider v1.0"
$certficate = [convert]::ToBase64String($cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx))
$CredsFilename = Get-AzRecoveryServicesVaultSettingsFile -Backup -Vault $Vault -Path $CredsPath -Certificate $certficate

En el sistema con Windows Server o el equipo cliente de Windows, ejecute el cmdlet Start-OBRegistration para registrar la máquina en el almacén. Este y otros cmdlets usados para copias de seguridad son del módulo MSONLINE que el instalador del agente de MARS agregó como parte del proceso de instalación.

El instalador del agente no actualiza la variable $Env:PSModulePath. Esto significa que se produce un error en la carga automática del módulo. Para resolver este problema, puede hacer lo siguiente:

$Env:PSModulePath += ';C:\Program Files\Microsoft Azure Recovery Services Agent\bin\Modules'

Como alternativa, puede cargar manualmente el módulo en el script como se indica a continuación:

Import-Module -Name 'C:\Program Files\Microsoft Azure Recovery Services Agent\bin\Modules\MSOnlineBackup'

Después de cargar los cmdlets de Online Backup, registre las credenciales del almacén:

Start-OBRegistration -VaultCredentials $CredsFilename.FilePath -Confirm:$false
CertThumbprint      : 7a2ef2caa2e74b6ed1222a5e89288ddad438df2
SubscriptionID      : ef4ab577-c2c0-43e4-af80-af49f485f3d1
ServiceResourceName : testvault
Region              : WestUS
Machine registration succeeded.

Importante

No use rutas de acceso relativas para especificar el archivo de credenciales del almacén de claves. Debe proporcionar una ruta de acceso absoluta como entrada para el cmdlet.

Configuración de redes

Cuando la conectividad de la máquina de Windows a Internet se realiza a través de un servidor proxy, también se puede proporcionar la configuración del proxy al agente. En este ejemplo, no hay ningún servidor proxy, por lo que se borra explícitamente cualquier información relacionada con el proxy.

También puede controlar el uso de ancho de banda con las opciones de work hour bandwidth y non-work hour bandwidth para un conjunto determinado de días de la semana.

El establecimiento de los detalles de ancho de banda y del proxy se realiza mediante el cmdlet Set-OBMachineSetting :

Set-OBMachineSetting -NoProxy
Server properties updated successfully.
Set-OBMachineSetting -NoThrottle
Server properties updated successfully.

Configuración de cifrado

Los datos de copia de seguridad enviados a Azure Backup se cifran para proteger la confidencialidad de los datos. La frase de contraseña de cifrado es la "contraseña" que permite descifrar los datos en el momento de la restauración.

Debe generar un PIN de seguridad seleccionando Generar en Configuración>Propiedades>PIN de seguridad en la sección Almacén de Recovery Services.

Nota:

El PIN de seguridad solo se puede generar desde Azure Portal.

A continuación, úselo como el generatedPIN en el comando:

$PassPhrase = ConvertTo-SecureString -String "Complex!123_STRING" -AsPlainText -Force
Set-OBMachineSetting -EncryptionPassPhrase $PassPhrase -SecurityPin "<generatedPIN>"
Server properties updated successfully

Importante

Mantenga la información de la frase de contraseña segura una vez establecida. No puede restaurar los datos de Azure sin esta frase de contraseña.

Realizar copias de seguridad de archivos y carpetas

Todas las copias de seguridad de servidores y clientes de Windows en Azure Backup se rigen por una directiva. La directiva comprende tres partes:

  • Un programa de copia de seguridad que especifica cuándo deben efectuarse y sincronizarse las copias de seguridad con el servicio.
  • Una programación de retención que especifica cuánto tiempo se conservarán los puntos de recuperación en Azure.
  • Una especificación de inclusión o exclusión de archivo que determina los elementos de los que se debe efectuar una copia de seguridad.

En este documento, dado que se está automatizando la copia de seguridad, supondremos que no se ha configurado nada. Comenzamos creando una nueva directiva de copia de seguridad mediante el cmdlet New-OBPolicy .

$NewPolicy = New-OBPolicy

En este momento la directiva está vacía y se necesitan otros cmdlet para definir qué elementos se incluirán o excluirán, cuándo se ejecutarán las copias de seguridad y dónde se almacenarán las copias de seguridad.

Configuración de la programación de la copia de seguridad

La primera de las tres partes de una directiva es la programación de copia de seguridad, que se crea usando el cmdlet New-OBSchedule. La programación de copia de seguridad define cuándo deben realizarse copias de seguridad. Al crear una programación se deben especificar dos parámetros de entrada:

  • Días de la semana en los que se debe ejecutar la copia de seguridad. Puede ejecutar el trabajo de copia de seguridad en solo un día o cada día de la semana, o cualquier combinación intermedia.
  • Horas del día a las que se debe ejecutar la copia de seguridad. Puede definir hasta tres horas distintas del día en las que se activará la copia de seguridad.

Por ejemplo, podría configurar una directiva de copia de seguridad que se ejecute a las 4 p.m. cada sábado y domingo.

$Schedule = New-OBSchedule -DaysOfWeek Saturday, Sunday -TimesOfDay 16:00

La programación de copia de seguridad debe estar asociada con una directiva y esto puede lograrse mediante el uso del cmdlet Set-OBSchedule .

Set-OBSchedule -Policy $NewPolicy -Schedule $Schedule
BackupSchedule : 4:00 PM Saturday, Sunday, Every 1 week(s) DsList : PolicyName : RetentionPolicy : State : New PolicyState : Valid

Configuración de una directiva de retención

La directiva de retención define cuánto tiempo se conservan los puntos de recuperación de los trabajos de copia de seguridad. Al crear una nueva directiva de retención mediante el cmdlet New-OBRetentionPolicy, puede especificar el número de días que se conservarán los puntos de recuperación de copia de seguridad con Azure Backup. En el ejemplo siguiente se establece una directiva de retención de siete días.

$RetentionPolicy = New-OBRetentionPolicy -RetentionDays 7

La directiva de retención debe estar asociada con la directiva principal mediante el cmdlet Set-OBRetentionPolicy:

Set-OBRetentionPolicy -Policy $NewPolicy -RetentionPolicy $RetentionPolicy
BackupSchedule  : 4:00 PM
                  Saturday, Sunday,
                  Every 1 week(s)
DsList          :
PolicyName      :
RetentionPolicy : Retention Days : 7

                  WeeklyLTRSchedule :
                  Weekly schedule is not set

                  MonthlyLTRSchedule :
                  Monthly schedule is not set

                  YearlyLTRSchedule :
                  Yearly schedule is not set

State           : New
PolicyState     : Valid

Incluir y excluir archivos de copia de seguridad

Un objeto OBFileSpec define los archivos incluidos y excluidos de una copia de seguridad. Se trata de un conjunto de reglas de ámbito de los archivos y carpetas protegidos de un equipo. Puede tener tantas reglas de inclusión o exclusión de archivos como se necesiten y asociarlas con una directiva. Al crear un nuevo objeto OBFileSpec, puede:

  • Especificar los archivos y carpetas que se van a incluir
  • Especificar los archivos y carpetas que se van a excluir
  • Especificar la copia de seguridad recursiva de los datos en una carpeta (o) si se deben copiar solo los archivos de nivel superior en la carpeta especificada.

Esto último se consigue mediante la marca -NonRecursive del comando New-OBFileSpec.

En el ejemplo siguiente, crearemos copias de seguridad del volumen C: y D: y excluiremos los archivos binarios de sistema operativo de la carpeta de Windows y las carpetas temporales. Para ello, crearemos dos especificaciones de archivos mediante el cmdlet New-OBFileSpec: uno para la inclusión y otro para la exclusión. Una vez que se hayan creado las especificaciones de archivo, se asocian con la directiva mediante el cmdlet Add-OBFileSpec .

$Inclusions = New-OBFileSpec -FileSpec @("C:\", "D:\")
$Exclusions = New-OBFileSpec -FileSpec @("C:\windows", "C:\temp") -Exclude
Add-OBFileSpec -Policy $NewPolicy -FileSpec $Inclusions
BackupSchedule  : 4:00 PM
                  Saturday, Sunday,
                  Every 1 week(s)
DsList          : {DataSource
                  DatasourceId:0
                  Name:C:\
                  FileSpec:FileSpec
                  FileSpec:C:\
                  IsExclude:False
                  IsRecursive:True

                  , DataSource
                  DatasourceId:0
                  Name:D:\
                  FileSpec:FileSpec
                  FileSpec:D:\
                  IsExclude:False
                  IsRecursive:True

                  }
PolicyName      :
RetentionPolicy : Retention Days : 7

                  WeeklyLTRSchedule :
                  Weekly schedule is not set

                  MonthlyLTRSchedule :
                  Monthly schedule is not set

                  YearlyLTRSchedule :
                  Yearly schedule is not set

State           : New
PolicyState     : Valid
Add-OBFileSpec -Policy $NewPolicy -FileSpec $Exclusions
BackupSchedule  : 4:00 PM
                  Saturday, Sunday,
                  Every 1 week(s)
DsList          : {DataSource
                  DatasourceId:0
                  Name:C:\
                  FileSpec:FileSpec
                  FileSpec:C:\
                  IsExclude:False
                  IsRecursive:True
                  ,FileSpec
                  FileSpec:C:\windows
                  IsExclude:True
                  IsRecursive:True
                  ,FileSpec
                  FileSpec:C:\temp
                  IsExclude:True
                  IsRecursive:True

                  , DataSource
                  DatasourceId:0
                  Name:D:\
                  FileSpec:FileSpec
                  FileSpec:D:\
                  IsExclude:False
                  IsRecursive:True

                  }
PolicyName      :
RetentionPolicy : Retention Days : 7

                  WeeklyLTRSchedule :
                  Weekly schedule is not set

                  MonthlyLTRSchedule :
                  Monthly schedule is not set

                  YearlyLTRSchedule :
                  Yearly schedule is not set

State           : New
PolicyState     : Valid

Aplicación de la directiva

Ahora el objeto de la directiva está finalizado y tiene una programación de copia de seguridad asociada, una directiva de retención y una lista de inclusión o exclusión de archivos. Ahora se puede confirmar esta directiva para ser usada por Azure Backup. Antes de aplicar la directiva recién creada, asegúrese de que no haya ninguna directiva de copia de seguridad existente asociada con el servidor mediante el uso del cmdlet Remove-OBPolicy. Para eliminar la directiva, se le pedirá confirmación. Para omitir el uso de la confirmación, use la marca -Confirm:$false con el cmdlet.

Nota:

Al ejecutar el cmdlet, si pide establecer un PIN de seguridad, vea la sección Método 1.

Get-OBPolicy | Remove-OBPolicy
Microsoft Azure Backup Are you sure you want to remove this backup policy? This will delete all the backed up data. [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

La confirmación del objeto de la directiva se lleva a cabo usando el cmdlet Set-OBPolicy . Esto también requerirá confirmación. Para omitir el uso de la confirmación, use la marca -Confirm:$false con el cmdlet.

Set-OBPolicy -Policy $NewPolicy
Microsoft Azure Backup Do you want to save this backup policy ? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
BackupSchedule : 4:00 PM Saturday, Sunday, Every 1 week(s)
DsList : {DataSource
         DatasourceId:4508156004108672185
         Name:C:\
         FileSpec:FileSpec
         FileSpec:C:\
         IsExclude:False
         IsRecursive:True,

         FileSpec
         FileSpec:C:\windows
         IsExclude:True
         IsRecursive:True,

         FileSpec
         FileSpec:C:\temp
         IsExclude:True
         IsRecursive:True,

         DataSource
         DatasourceId:4508156005178868542
         Name:D:\
         FileSpec:FileSpec
         FileSpec:D:\
         IsExclude:False
         IsRecursive:True
    }
PolicyName : c2eb6568-8a06-49f4-a20e-3019ae411bac
RetentionPolicy : Retention Days : 7
              WeeklyLTRSchedule :
              Weekly schedule is not set

              MonthlyLTRSchedule :
              Monthly schedule is not set

              YearlyLTRSchedule :
              Yearly schedule is not set
State : Existing PolicyState : Valid

Puede ver los detalles de la directiva de copia de seguridad existente con el cmdlet Get-OBPolicy . Puede profundizar más mediante el cmdlet Get-OBSchedule para la programación de copia de seguridad y el cmdlet Get-OBRetentionPolicy para las directivas de retención.

Get-OBPolicy | Get-OBSchedule
SchedulePolicyName : 71944081-9950-4f7e-841d-32f0a0a1359a
ScheduleRunDays : {Saturday, Sunday}
ScheduleRunTimes : {16:00:00}
State : Existing
Get-OBPolicy | Get-OBRetentionPolicy
RetentionDays : 7
RetentionPolicyName : ca3574ec-8331-46fd-a605-c01743a5265e
State : Existing
Get-OBPolicy | Get-OBFileSpec
FileName : *
FilePath : \?\Volume{b835d359-a1dd-11e2-be72-2016d8d89f0f}\
FileSpec : D:\
IsExclude : False
IsRecursive : True

FileName : *
FilePath : \?\Volume{cdd41007-a22f-11e2-be6c-806e6f6e6963}\
FileSpec : C:\
IsExclude : False
IsRecursive : True

FileName : *
FilePath : \?\Volume{cdd41007-a22f-11e2-be6c-806e6f6e6963}\windows
FileSpec : C:\windows
IsExclude : True
IsRecursive : True

FileName : *
FilePath : \?\Volume{cdd41007-a22f-11e2-be6c-806e6f6e6963}\temp
FileSpec : C:\temp
IsExclude : True
IsRecursive : True

Realización de una copia de seguridad a petición

Una vez establecida una directiva de copia de seguridad, las copias de seguridad se producirán en función de la programación. También es posible desencadenar una copia de seguridad a petición mediante el cmdlet Start-OBBackup:

Get-OBPolicy | Start-OBBackup
Initializing
Taking snapshot of volumes...
Preparing storage...
Generating backup metadata information and preparing the metadata VHD...
Data transfer is in progress. It might take longer since it is the first backup and all data needs to be transferred...
Data transfer completed and all backed up data is in the cloud. Verifying data integrity...
Data transfer completed
In progress...
Job completed.
The backup operation completed successfully.

Copia de seguridad del estado del sistema de Windows Server en el agente de MARS

En esta sección se describe el comando de PowerShell para configurar el estado del sistema en el agente de MARS.

Programación

$sched = New-OBSchedule -DaysOfWeek Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday -TimesOfDay 2:00

Retención

$rtn = New-OBRetentionPolicy -RetentionDays 32 -RetentionWeeklyPolicy -RetentionWeeks 13 -WeekDaysOfWeek Sunday -WeekTimesOfDay 2:00  -RetentionMonthlyPolicy -RetentionMonths 13 -MonthDaysOfMonth 1 -MonthTimesOfDay 2:00

Configuración de programación y retención

New-OBPolicy | Add-OBSystemState |  Set-OBRetentionPolicy -RetentionPolicy $rtn | Set-OBSchedule -Schedule $sched | Set-OBSystemStatePolicy

Comprobación de la directiva

Get-OBSystemStatePolicy

Restaurar datos de Azure Backup

Esta sección le guiará por los pasos necesarios para automatizar la recuperación de datos de Azure Backup. Esto implica los pasos siguientes:

  1. Seleccionar el volumen de origen
  2. Elegir un punto de copia de seguridad desde el que efectuar la restauración
  3. Especificar un elemento para restaurar
  4. Desencadenar el proceso de restauración

Selección del volumen de origen

Para restaurar un elemento de Azure Backup, primero deberá identificar el origen del elemento. Dado que los comandos se están ejecutando en el contexto de un servidor o un cliente de Windows, el equipo ya se ha identificado. El siguiente paso para identificar el origen es identificar el volumen que lo contiene. Se puede recuperar una lista de los volúmenes u orígenes de los que se está efectuando una copia de seguridad desde esta máquina mediante la ejecución del cmdlet Get-OBRecoverableSource . Este comando devuelve una matriz de todos los orígenes de los que se ha efectuado una copia de seguridad desde este servidor/cliente.

$Source = Get-OBRecoverableSource
$Source
FriendlyName : C:\
RecoverySourceName : C:\
ServerName : myserver.microsoft.com

FriendlyName : D:\
RecoverySourceName : D:\
ServerName : myserver.microsoft.com

Elección de un punto de copia de seguridad desde el que efectuar la restauración

La lista de puntos de copia de seguridad se puede recuperar ejecutando el cmdlet Get-OBRecoverableItem con los parámetros adecuados. En nuestro ejemplo, elegiremos el punto de copia de seguridad más reciente para el volumen de origen C: y lo usaremos para recuperar un archivo específico.

$Rps = Get-OBRecoverableItem $Source[0]
$Rps

IsDir                : False
ItemNameFriendly     : C:\
ItemNameGuid         : \\?\Volume{297cbf7a-0000-0000-0000-401f00000000}\
LocalMountPoint      : C:\
MountPointName       : C:\
Name                 : C:\
PointInTime          : 10/17/2019 7:52:13 PM
ServerName           : myserver.microsoft.com
ItemSize             :
ItemLastModifiedTime :

IsDir                : False
ItemNameFriendly     : C:\
ItemNameGuid         : \\?\Volume{297cbf7a-0000-0000-0000-401f00000000}\
LocalMountPoint      : C:\
MountPointName       : C:\
Name                 : C:\
PointInTime          : 10/16/2019 7:00:19 PM
ServerName           : myserver.microsoft.com
ItemSize             :
ItemLastModifiedTime :

El objeto $Rps es una matriz de puntos de copia de seguridad. El primer elemento es el punto más reciente y el enésimo elemento es el punto más antiguo. Para elegir el punto más reciente, usaremos $Rps[0].

Especificar un elemento para restaurar

Para restaurar un archivo concreto, especifique el nombre de archivo relacionado con el volumen raíz. Por ejemplo, para recuperar C:\Test\Cat.job, ejecute el siguiente comando.

$Item = New-OBRecoverableItem $Rps[0] "Test\cat.jpg" $FALSE
$Item
IsDir                : False
ItemNameFriendly     : C:\Test\cat.jpg
ItemNameGuid         :
LocalMountPoint      : C:\
MountPointName       : C:\
Name                 : cat.jpg
PointInTime          : 10/17/2019 7:52:13 PM
ServerName           : myserver.microsoft.com
ItemSize             :
ItemLastModifiedTime : 21-Jun-14 6:43:02 AM

Desencadenar el proceso de restauración

Para desencadenar el proceso de restauración, primero es necesario especificar las opciones de recuperación. Esto puede hacerse mediante el uso del cmdlet New-OBRecoveryOption . En este ejemplo, supongamos que queremos restaurar los archivos en C:\temp. Supongamos también que queremos omitir archivos que ya existen en la carpeta de destino C:\temp. Para crear dicha opción de recuperación, use el siguiente comando:

$RecoveryOption = New-OBRecoveryOption -DestinationPath "C:\temp" -OverwriteType Skip

Ahora, desencadene el proceso de restauración con el comando Start-OBRecovery en el $Item seleccionado desde la salida del cmdlet Get-OBRecoverableItem:

Start-OBRecovery -RecoverableItem $Item -RecoveryOption $RecoveryOption
Estimating size of backup items...
Estimating size of backup items...
Estimating size of backup items...
Estimating size of backup items...
Job completed.
The recovery operation completed successfully.

Restauración entre regiones

La restauración entre regiones (CRR) le permite restaurar los datos de copia de seguridad de MARS desde una región secundaria, que es una región emparejada de Azure. Esto le permite realizar simulacros de auditoría y cumplimiento, y recuperar datos durante la falta de disponibilidad de la región primaria en Azure en caso de desastre.

Restauración del servidor original

Si va a realizar la restauración para el servidor original desde la región secundaria (Restauración entre regiones), use la marca UseSecondaryRegion al obtener el objetoOBRecoverableSource.

$sources = Get-OBRecoverableSource -UseSecondaryRegion
$RP = Get-OBRecoverableItem -Source $sources[0]
$RO = New-OBRecoveryOption -DestinationPath $RecoveryPath -OverwriteType Overwrite
Start-OBRecovery -RecoverableItem $RP -RecoveryOption $RO -Async | ConvertTo-Json

Restauración del servidor alternativo

Si va a realizar la restauración para un servidor alternativo de la región secundaria (Restauración entre regiones), descargue el archivo de credenciales del almacén de regiones secundarias del Azure Portal y pase la credencial del almacén de regiones secundarias para la restauración.

$serverName = ‘myserver.mycompany.com’
$secVaultCred = “C:\Users\myuser\Downloads\myvault_Mon Jul 17 2023.VaultCredentials”
$passphrase = ‘Default Passphrase’
$alternateServers = Get-OBAlternateBackupServer -VaultCredentials $secVaultCred
$altServer = $alternateServers[2] | Where-Object {$_.ServerName -Like $serverName}
$pwd = ConvertTo-SecureString -String $passphrase -AsPlainText -Force
$sources = Get-OBRecoverableSource $altServer
$RP = Get-OBRecoverableItem -Source $sources[0]
$RO = New-OBRecoveryOption
Start-OBRecoveryMount -RecoverableItem $RP -RecoveryOption $RO -EncryptionPassphrase $pwd  -Async | ConvertTo-Json 

Desinstalar el agente de Azure Backup

La desinstalación del agente de Azure Backup se puede realizar con el comando siguiente:

.\MARSAgentInstaller.exe /d /q

Desinstalación de los archivos binarios del agente de la máquina tiene algunas consecuencias a tener en cuenta:

  • Elimina el filtro de archivos de la máquina y se detiene el seguimiento de los cambios.
  • Se elimina toda la información de directivas de la máquina, pero continúa almacenada en el servicio.
  • Se eliminan todas las programaciones de copia de seguridad y no se realizan más copias de seguridad.

Pero los datos almacenados en Azure permanecen y se mantienen de acuerdo con la configuración de la directiva de retención que haya establecido. Los puntos más antiguos vencen automáticamente.

Administración remota

Toda la administración relacionada con el agente, las políticas y los orígenes de datos de Azure Backup puede realizarse de forma remota mediante PowerShell. La máquina que se administrará de forma remota debe estar preparada correctamente.

De forma predeterminada, el servicio WinRM está configurado para iniciarse manualmente. El tipo de inicio debe establecerse en Automatic y se debe iniciar el servicio. Para comprobar que el servicio WinRM se está ejecutando, el valor de la propiedad Status debe ser Running.

Get-Service -Name WinRM
Status   Name               DisplayName
------   ----               -----------
Running  winrm              Windows Remote Management (WS-Manag...

PowerShell debe configurarse para la comunicación remota.

Enable-PSRemoting -Force
WinRM is already set up to receive requests on this computer.
WinRM has been updated for remote management.
WinRM firewall exception enabled.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force

La máquina puede ahora administrarse de forma remota: empezando por la instalación del agente. Por ejemplo, el script siguiente copia al agente en la máquina remota y lo instala.

$DLoc = "\\REMOTESERVER01\c$\Windows\Temp"
$Agent = "\\REMOTESERVER01\c$\Windows\Temp\MARSAgentInstaller.exe"
$Args = "/q"
Copy-Item "C:\Downloads\MARSAgentInstaller.exe" -Destination $DLoc -Force

$Session = New-PSSession -ComputerName REMOTESERVER01
Invoke-Command -Session $Session -Script { param($D, $A) Start-Process -FilePath $D $A -Wait } -ArgumentList $Agent, $Args

Pasos siguientes

Para más información sobre Azure Backup para Windows Server o cliente de Windows: