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%system32WindowsPowerShellv1.0powershell.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%system32WindowsPowerShellv1.0powershell.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.

Anuncios

Publicado el 08/05/2014 en Administración, Powershell, Windows 2008, Windows 2008 R2, Windows 2012, Windows 2012 R2 y etiquetado en . Guarda el enlace permanente. Deja un comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

masrobeznoquenunca

Comparto lo que hago y lo que veo.

El camino de un ITPro

El camino de un ITPro

adumont

Just another WordPress.com weblog

Marco Antonio's space

Una mirada dentro de mis ratos libres...

Marcelo Ruiz

Network and SocialMedia

A Digital Frontier...

Blog personal de Robert Garrandés Simancas ("Versión Beta")

enero11

Literatura para romper el tiempo.

A %d blogueros les gusta esto: