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)¶
- Preparar recurso compartido con el script, con permisos de lectura para los equipos/usuarios destino.
- Editar la GPO vinculada a la OU objetivo.
- Navegar a la ruta adecuada de Scripts → Agregar → Seleccionar el script (ruta UNC) → Parámetros opcionales.
- 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)¶
- Verifica que el comando/script existe y es accesible (UNC si procede).
- Editar GPO → Preferencias → Tareas programadas → Nueva → Tarea (Windows 10/11).
- General: Nombre, Ejecutar si el usuario ha iniciado sesión o no, Ejecutar con privilegios más altos, Cuenta (SYSTEM o servicio).
- Acciones: Iniciar un programa (p.ej.,
powershell.exe -ExecutionPolicy Bypass -File \\SRV\Scripts\tarea.ps1). - Desencadenadores: Al iniciar / Por horario / Al iniciar sesión.
- Condiciones y Configuración según necesidad.
- 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.mscen cliente → confirmar creación/última ejecución; visor de eventos de TaskScheduler. - Forzar actualización:
gpupdate /forcey validar congpresult /rorsop.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)