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:

  1. Clic derecho en los objetos de Directiva de Grupo y clic en hacer copia de seguridad de todos
    backupdomainGPOs
  2. Indicamos la ruta y la descripción, y se realiza la copia de seguridad.
    backupdomainGPOs02
  3. backupdomainGPOs03
  4. backupdomainGPOs04
  5. backupdomainGPOs05

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

scriptbackup01

scriptbackup02

scriptbackup03

scriptbackup04

Published 1/9/2011 13:38 por Juansa
Comparte este post: