Joan zuzenean edukira

4.5. Scripts y tareas programadas

  • Objetivos
    • Entender los tipos de scripts en GPO (inicio/apagado de equipo y inicio/cierre de sesión de usuario).
    • Desplegar tareas programadas mediante Preferencias (GPP) con Item-Level Targeting (ILT).
    • Conocer el orden de ejecución, permisos y consideraciones de seguridad.

Scripts con GPO

  • Tipos:
    • Equipo → Inicio / Apagado
    • Usuario → Inicio de sesión / Cierre de sesión
  • Ubicación en GPMC:
    • Equipo/Usuario → Configuración de Windows → Scripts (Startup/Shutdown o Logon/Logoff)
  • Formatos admitidos: .bat, .cmd, .ps1 (PowerShell requiere política de ejecución adecuada en los equipos).

Procedimiento (GUI)

  1. Preparar recurso compartido con el script, con permisos de lectura para los equipos/usuarios destino.
  2. Editar la GPO vinculada a la OU objetivo.
  3. Navegar a la ruta adecuada de Scripts → Agregar → Seleccionar el script (ruta UNC) → Parámetros opcionales.
  4. Aplicar y actualizar en clientes (gpupdate /force).

Procedimiento (PowerShell)

# Ejemplo: script de inicio de equipo
$gpoName = "GPO-Equipos-Scripts"
$gpo = Get-GPO -Name $gpoName -ErrorAction SilentlyContinue
if (-not $gpo) { $gpo = New-GPO -Name $gpoName }
# Vincular GPO a la OU desde GPMC o con:
# New-GPLink -Name $gpo.DisplayName -Target "OU=Equipos,DC=example,DC=local"
# Copia previa del script a un recurso UNC accesible, p.ej. \\SRV\Scripts\startup.ps1

Tareas programadas con GPP

  • Ruta: Equipo/Usuario → Preferencias → Configuración de Windows → Tareas programadas
  • Modos de acción: Crear / Reemplazar / Actualizar / Eliminar
  • Ejecutar como: especificar cuenta (p.ej., SYSTEM para tareas de equipo) y opción "Ejecutar con privilegios más altos".
  • ILT (Item-Level Targeting): aplicar por grupo, OU, versión de SO, IP, etc.

Procedimiento (GUI)

  1. Verifica que el comando/script existe y es accesible (UNC si procede).
  2. Editar GPO → Preferencias → Tareas programadas → Nueva → Tarea (Windows 10/11).
  3. General: Nombre, Ejecutar si el usuario ha iniciado sesión o no, Ejecutar con privilegios más altos, Cuenta (SYSTEM o servicio).
  4. Acciones: Iniciar un programa (p.ej., powershell.exe -ExecutionPolicy Bypass -File \\SRV\Scripts\tarea.ps1).
  5. Desencadenadores: Al iniciar / Por horario / Al iniciar sesión.
  6. Condiciones y Configuración según necesidad.
  7. Common → Habilitar ILT si se requiere segmentación.

Procedimiento (PowerShell) mínimo

# En escenarios GPO se suele exportar una tarea desde un equipo y gestionarla por GPP (XML).
# Este paso se deja como referencia para no introducir complejidad innecesaria.

Verificación

  • Scripts: Event Viewer → Microsoft → Windows → GroupPolicy; salida propia del script.
  • Tareas: taskschd.msc en cliente → confirmar creación/última ejecución; visor de eventos de TaskScheduler.
  • Forzar actualización: gpupdate /force y validar con gpresult /r o rsop.msc.

Buenas prácticas

  • Usar rutas UNC estables y firmar scripts cuando sea posible.
  • Minimizar privilegios: tareas de equipo como SYSTEM; evitar credenciales embebidas.
  • Documentar propósito, ámbito e ILT de cada elemento de GPP.
  • Versionar scripts y controlar cambios.

Práctica AWS relacionada

Despliega GPP (unidades, impresoras, accesos) y tareas programadas con ILT paso a paso en AWS con la guía: 8. Despliegue con GPP (map drives, impresoras, atajos)