Automatizando tareas administrativas: Copia de seguridad de las GPO del dominio
Tener una copia de seguridad de las Directivas de Grupo nos vendrá bien en algunos casos. Para realizar dicha copia podemos acceder simplemente a la Consola de administración de Directivas y hacer unos pocos pasos:
- Clic derecho en los objetos de Directiva de Grupo y clic en hacer copia de seguridad de todos
- Indicamos la ruta y la descripción, y se realiza la copia de seguridad.



Aunque también podemos hacerlo con Powershell, por ejemplo desde El script-center tenemos un script para copiar las Directivas de Grupo modificadas en el mes.
http://blogs.technet.com/b/grouppolicy/archive/2009/03/26/powershell-script-backup-all-gpos-that-have-been-modified-this-month.aspx
El código es prácticamente el mismo, pero he traducido las cadenas y añadido import-ActiveDirectory para que pueda usar los cmdlets de AD, y cambiado la sentencia que recoge las GPO para que hiciera el backup de todas en lugar de las modificadas.
1 # El siguiente script busca todas las Directivas de Grupo en el dominio que hayan sido modificadas este mes. Entonces genera una copia de seguridad y un informe de configuración por cada una. Finalmente lista todas las que se han copiado.
2 ## depende de si se accede por el acceso a la consola powershell de AD o se ha navegado hacia allí primero
3
4 # necesario para usar los cmdlets de directiva de grupo y Active Directory
5 import-module ActiveDirectory
6 import-module grouppolicy
7
8 #Sacar todas las directivas de grupo enlazadas en el dominio del equipo local
9 #el primer paso es obtener el objeto dominio
10 # intro "get-ADDomain -?" para la ayuda
11
12 $mydomain = get-ADDomain -current LocalComputer
13
14 # el siguiente paso es obtener todas las directivas de grupo actualmente en el dominio que hayan sido modificadas este mes
15
16 $currentDate = get-Date
17
18 # $ModGPOs = get-gpo -domain $mydomain.DNSRoot -all | where {$_.ModificationTime.Year.equals($currentDate.Year) -And $_.ModificationTime.Month.equals($CurrentDate.Month)}
19
20 $ModGPOs = get-gpo -domain $mydomain.DNSRoot -all
21
22 # bucle de las directivas de grupo
23
24 $RootPath = "C:\GPOBackup\Reports\"
25
26 Foreach ($GPO in $ModGPOs) {
27 # Copia de seguridad de la directiva en la ruta especificada
28 $GPOBackup = backup-GPO $GPO.DisplayName -path "C:\GPOBackup"
29
30 # Primero crea la ruta del informe, luego lo genera con la configuración guardada.
31 $ReportPath = $RootPath + $GPO.ModificationTime.Month + "-"+ $GPO.ModificationTime.Day + "-" + $GPO.ModificationTime.Year + "_" + $GPO.Displayname + "_" + $GPOBackup.Id + ".html"
32 get-GPOReport -Name $GPO.DisplayName -path $ReportPath -ReportType HTML
33 }
34
35 # Salida de cuales directivas de grupo se han guardado correctamente.
36
37 "Las siguientes " + $ModGPOs.count + " Directivas de Grupo se han guardado correctamente:" | out-host
38
39 Foreach ($GPO in $ModGPOs) {
40 " " + $GPO.DisplayName | out-host
41 }
42
43 "Ir a " + $RootPath + " para ver los informes de configuración de las Directivas de Grupo guardadas." | out-host
44



