Hola,
Hablábamos hace muy poco sobre cómo realizar un backup de GPOs de Directorio Activo en caliente y dejamos pendiente el hacerlo mediante una tarea programada, por PowerShell (PS), por supuesto. Pues nada, al tajo.
Para empezar cargaremos, si no lo tenemos cargado por defecto, el módulo de Tareas Programadas y el de Group Policy:
Import-Module ScheduledTasks, GroupPolicy
Aqui teneis un listado de todos los cmdlets contenidos en el módulo:
Un pequeño detalles es que este módulo esta accesible para importarlo desde PS 3.0, así que si teneis una versión inferior os recomiendo o actualizarla o descargar los módulos desde Codeplex (Aqui).
Podríamos crear la tarea programada con el cmdlet New-ScheduledTask directamente, pero para una mayor claridad y que se pueda entender para los profanos la vamos a dividir en variables:
Vamos a definir las siguientes variables que están incluidas en cualquier tarea programada:
- $A => Acción/es a realizar.- En nuestro caso es la ejecución de otro cmdlet de PS: «Backup-GPO -ALL -Path I:\GPOS_AD». Tiene la peculiaridad de que ejecutamos un cmdlet dentro de otro cmdlet, asi que hacemos referencia a la ejecución %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe. También podemos ejecutar un script de powershell con múltiples acciones.
- $T => Trigger o desencadenante.- En nuestro caso será la fecha de ejecución, diariamente, semanalmente, dias de la semana, a la hora que consideremos oportuna, una sola vez, etc. Tenemos un sinfin de opciones:
- $U => Credenciales de ejecución.- Podemos asingar unas credenciales determinadas para la ejecución de la tarea.
- $S => Configuración adicional.- En esta variable se guardan los parámetros de configuración de la tarea programada. Por defecto son los siguientes y, como todo, se pueden cambiar:
- D$ => Nueva Tarea. Metemos todos estos datos en una tarea nueva.
- Registro.- Hay que registrar la tarea con un nombre obligatoriamente.
Este es el script:
$A=New-ScheduledTaskAction -Execute ‘%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe’ -Argument ‘Backup-GPO -All -Path Z:\GPOS_AD’
$T=New-ScheduledTaskTrigger -Daily -At 2:45pm
$U=New-ScheduledTaskPrincipal -UserId «$($env:USERDOMAIN)\$($env:USERNAME)» -LogonType ServiceAccount
$S=New-Scheduledtasksettingsset
$D=New-ScheduledTask -Action $A -Principal $U -Trigger $T -Settings $S
Register-ScheduledTask TasK007 -InputObject $D
Y el resultado:
Desde el Task Scheduller podemos ver la nueva tarea:
El resultado de dicha tarea es el backup de nuestras GPO’s:
Todo un éxito. Probad a sustituir el cmdlet por un script de Powershell. Que tengais una buena semana.
Lecturas recomendadas:
– Technet.
– MCPMagazine.
Buen fin de semana.