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.
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:GPOBackupReports" 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