Administración Powershell Windows 2008 Windows 2008 R2 Windows 2012 Windows 2012 R2

Crear una Tarea programada con PowerShell. Backup de GPOs de AD.

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:

SchedulledTaskPS0000001

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:

SchedulledTaskPS000000111

  • $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:

SchedulledTaskPS0000003

  • 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:

SchedulledTaskPS000000

El resultado de dicha tarea es el backup de nuestras GPO’s:

SchedulledTaskPS0000004

Todo un éxito. Probad a sustituir el cmdlet por un script de Powershell. Que tengais una buena semana.

Lecturas recomendadas:

Technet.

Hey Scripting Guy.

Codeplex – PowerShell.

MCPMagazine.

Petri.co.il.

Buen fin de semana.

1 comment

  1. Pingback: Crear una Tarea programada con PowerShell. Back...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *