En este tema, aprenderemos cómo utilizar PowerShell para crear y gestionar tareas programadas en Windows. Las tareas programadas son esenciales para automatizar procesos repetitivos y garantizar que ciertas acciones se realicen en momentos específicos sin intervención manual.
Conceptos Clave
- Tareas Programadas: Son acciones que se ejecutan automáticamente en un horario predefinido.
- Task Scheduler: Es una herramienta de Windows que permite crear, eliminar y gestionar tareas programadas.
- cmdlets de PowerShell: PowerShell proporciona cmdlets específicos para interactuar con el Task Scheduler.
Cmdlets Principales
New-ScheduledTaskTrigger
: Crea un desencadenador para una tarea programada.New-ScheduledTaskAction
: Define la acción que realizará la tarea programada.Register-ScheduledTask
: Registra una nueva tarea programada en el Task Scheduler.Get-ScheduledTask
: Obtiene las tareas programadas existentes.Unregister-ScheduledTask
: Elimina una tarea programada.
Ejemplo Práctico
Vamos a crear una tarea programada que ejecuta un script de PowerShell todos los días a las 8:00 AM.
Paso 1: Crear el Desencadenador
El desencadenador define cuándo se ejecutará la tarea.
Paso 2: Definir la Acción
La acción especifica qué se ejecutará cuando se active el desencadenador. En este caso, ejecutaremos un script de PowerShell.
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\MyScript.ps1"
Paso 3: Registrar la Tarea Programada
Finalmente, registramos la tarea en el Task Scheduler.
Register-ScheduledTask -TaskName "MyDailyTask" -Trigger $trigger -Action $action -Description "Ejecuta MyScript.ps1 todos los días a las 8:00 AM"
Explicación del Código
-
Desencadenador:
New-ScheduledTaskTrigger -Daily -At 8:00AM
-Daily
: Indica que la tarea se ejecutará diariamente.-At 8:00AM
: Especifica la hora a la que se ejecutará la tarea.
-
Acción:
New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\MyScript.ps1"
-Execute "PowerShell.exe"
: Indica que se ejecutará PowerShell.-Argument "-File C:\Scripts\MyScript.ps1"
: Especifica el script que se ejecutará.
-
Registro de la Tarea:
Register-ScheduledTask -TaskName "MyDailyTask" -Trigger $trigger -Action $action -Description "Ejecuta MyScript.ps1 todos los días a las 8:00 AM"
-TaskName "MyDailyTask"
: Nombre de la tarea programada.-Trigger $trigger
: Asocia el desencadenador creado.-Action $action
: Asocia la acción definida.-Description
: Proporciona una descripción de la tarea.
Ejercicio Práctico
Ejercicio 1: Crear una Tarea Programada
Crea una tarea programada que ejecute un script de PowerShell (C:\Scripts\Backup.ps1
) todos los lunes a las 10:00 PM.
Solución
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 10:00PM $action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\Backup.ps1" Register-ScheduledTask -TaskName "WeeklyBackup" -Trigger $trigger -Action $action -Description "Ejecuta Backup.ps1 todos los lunes a las 10:00 PM"
Ejercicio 2: Eliminar una Tarea Programada
Elimina la tarea programada llamada "WeeklyBackup".
Solución
Errores Comunes y Consejos
- Permisos Insuficientes: Asegúrate de ejecutar PowerShell con permisos de administrador al crear o eliminar tareas programadas.
- Ruta Incorrecta del Script: Verifica que la ruta del script especificada en la acción sea correcta y accesible.
- Formato de Hora Incorrecto: Asegúrate de usar el formato de hora correcto (AM/PM) al definir el desencadenador.
Conclusión
En esta sección, hemos aprendido cómo crear y gestionar tareas programadas utilizando PowerShell. Estas habilidades son esenciales para automatizar tareas repetitivas y mejorar la eficiencia operativa. En el próximo tema, exploraremos cómo usar PowerShell para la administración del sistema, lo que nos permitirá automatizar aún más nuestras tareas diarias.
Curso de PowerShell
Módulo 1: Introducción a PowerShell
- ¿Qué es PowerShell?
- Instalación y Configuración de PowerShell
- Consola de PowerShell e ISE
- Comandos Básicos y Sintaxis
- Sistema de Ayuda en PowerShell
Módulo 2: Scripting Básico
- Variables y Tipos de Datos
- Operadores en PowerShell
- Sentencias Condicionales
- Bucles en PowerShell
- Funciones y Scripts
Módulo 3: Trabajando con Objetos
- Entendiendo los Objetos
- Propiedades y Métodos de los Objetos
- Pipelines y Manipulación de Objetos
- Filtrado y Selección de Objetos
- Ordenación y Agrupación de Objetos
Módulo 4: Técnicas Avanzadas de Scripting
- Manejo de Errores
- Depuración de Scripts
- Expresiones Regulares
- Trabajando con Archivos y Directorios
- Uso de Módulos y Snap-ins
Módulo 5: Automatización y Programación de Tareas
- Introducción a la Automatización
- Creación de Tareas Programadas
- Uso de PowerShell para Administración del Sistema
- Automatización de Tareas de Active Directory
- Automatización de Tareas de Red
Módulo 6: PowerShell Remoting
- Introducción al Remoting
- Configuración del Remoting
- Uso de Invoke-Command
- Gestión de Sesiones
- Consideraciones de Seguridad
Módulo 7: Funcionalidades Avanzadas de PowerShell
- Perfiles de PowerShell
- Personalización del Entorno de PowerShell
- Creación y Uso de Clases
- Trabajando con XML y JSON
- Uso de PowerShell con REST APIs
Módulo 8: PowerShell y DevOps
- Introducción a DevOps
- Uso de PowerShell con Pipelines de CI/CD
- Infraestructura como Código (IaC)
- Gestión de Recursos en la Nube con PowerShell
- PowerShell y Docker