Backup de tus GPO con PowerShell en Windows Server 2012
Seguro que en alguna ocasión habéis hecho algún backup de vuestras GPO desde el GUI, pero desde PowerShell? Vamos a ver como se pueden ejecutar ambos procesos desde Windows Server 2012. Primero vamos por la parte "sencilla" que es utilizar el GUI, para ello abrimos la consola de administración de las directivas de grupo (GPMC.MSC) y vamos a Objetos de directiva de grupo y pulsamos con el botón secundario del ratón y seleccionamos la opción Hacer copia de seguridad de todos …






si abrimos alguna de las carpetas vamos el siguiente contenido
Backup.xml: contiene la referencia de la GPO (opciones, asignación de filtros IPSec, descriptores de seguridad, etc….)
Si abrimos el fichero Backup.xml podemos ver la asignación del ID de la GPO (el que vemos cuando abrimos la consola de directivas de grupo) y el ID asignado en el backup (listado de carpetas del backup)
Si ahora lo comparamos desde la consola de administración de directivas de grupo el ID que se referencia en el XML vemos que logicamente es el mismo
Esto funciona perfectamente, tanto el backup como la resturación pero que pasa si queremos automatizar el proceso? Pues que desde el GUI no tenemos opción de hacerlo, por lo que tenemos que crearnos un pequeño script muy sencillo en PowerShell para realizar el backup de las GPO. Para ello tenemos el siguiente cmdlet: Backup-GPO
Backup-GPO -Guid <guid> -Path <string> [-Comment <string>] [-Domain <string>] [-Server <string>] [-WhatIf] [-Confirm] [<CommonParameters>]
Una vez que finalice el resultado el backup es el mismo que desde el GUI, tendremos nuestras carpetas con su ID. Este cmdlet es muy sencillo, yo he puesto -Domain pero en mi caso no haría falta, solo tengo un dominio. También podemos especificar el DC desde donde hacer el backup con el modificador -Server, etc… , y con el modifidador -ID hacer backup de una sola GPO.
Ahora solo quedaría crearse un .PS1, una tarea programada en Windows para lanzar el .PS1e e incluir la ruta de destino del backup de las GPO en las tareas programadas de los backups de la empresa.
Si por el contrario queremos restarurar una GPO, también podemos hacerlo mediante GUI o PowerShell:
Restaurar mediante GUI
si pulsamos restaurar nos avisa que va a comenzar el proceso de restauración
Una vez que se ha completado la restauración ya la tenemos lista para implementarla, si ya existe una con el mismo nombre la sobreescribe y sino la crea.
Restaurar mediante PowerShell
Restore-GPO -BackupId <guid> -Path <string> [-Domain <string>] [-Server <string>] [-WhatIf] [-Confirm] [<CommonParameters>]

Si queremos restaurar una única GPO debemos ejecutar el siguiente CMDLET:
Restore-GPO -BackupId 0BE91DD6-FE91-42AF-BC6A-2BFF0CD10CA8 -Path C:\Backup_GPO -Domain Asirlab.com

