Aprenda a crear una tarea programada con PowerShell

Casi todos los administradores de sistemas tienen que lidiar con las tareas programadas. Son increíblemente útiles para hacer algo basado en varios disparadores, pero requieren mucho esfuerzo manual para configurar correctamente.

La ventaja de las tareas programadas es que puede construir una con un profundo nivel de sofisticación con opciones de disparo y varios contextos de seguridad. Pero donde reina la complejidad, pueden surgir errores de configuración. Cuando esté desarrollando estos scripts de automatización, puede crear una tarea programada con PowerShell para facilitar el proceso. El uso de PowerShell ayuda a estandarizar el trabajo de gestión y configuración que conllevan las intrincadas tareas programadas, lo que tiene la ventaja añadida de evitar los errores habituales que se derivan de la introducción manual.

Crear una acción de tarea programada

Como mínimo, una tarea programada tiene una acción, un desencadenante y un grupo de configuraciones asociadas. Una vez creada la tarea, también hay que registrarla en el sistema. Es necesario realizar cada acción por separado para crear una única tarea programada.

Para crear la acción, utilice el cmdlet New-ScheduledTaskAction que especifica el comando a ejecutar. Vamos a crear una acción que se pone un poco meta e invoca un script de PowerShell.

El comando siguiente da un ejemplo de invocar el motor de PowerShell y pasarle un script usando todos los interruptores de línea de comandos apropiados para hacer que el script se ejecute de forma no interactiva. El archivo de secuencia de comandos reside en el equipo en el que se ejecutará la tarea programada.

$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'

Crear un activador

A continuación, necesita un activador. Tiene varios valores disponibles, pero esta tarea utilizará una hora específica — 3 a.m. — para ejecutar este script una vez. Para obtener una lista completa de opciones, consulte la página de ayuda del cmdlet New-ScheduledTaskTrigger.

$Trigger = New-ScheduledTaskTrigger -Once -At 3am

Crear configuración

A continuación, cree la tarea programada mediante el comando New-ScheduledTask. Este comando requiere un valor para el parámetro Settings, incluso si no está utilizando ningún especial. Por ello, ejecute New-ScheduledTaskSettingsSet para crear un objeto que pasar aquí.

$Settings = New-ScheduledTaskSettingsSet

Crear la tarea programada

Después de asignar todos los objetos como variables, pase cada una de estas variables al comando New-ScheduledTask para crear un objeto de tarea programada.

$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings

Registrar la tarea programada

En este punto, ha creado un objeto de tarea programada en la memoria. Para agregar la tarea programada en el equipo, debe registrar la tarea programada mediante el cmdlet Register-ScheduledTask.

El ejemplo siguiente registra una tarea programada para que se ejecute bajo un nombre de usuario determinado. Para ejecutar la tarea bajo el contexto de un determinado usuario, hay que proporcionar la contraseña. Es útil consultar la documentación del comando Register-ScheduledTask para ver todas las opciones que se pueden utilizar con este cmdlet.

Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'

Si ha seguido todos los pasos correctamente, debería ver su tarea programada recién creada en el Programador de tareas.

configuración de la tarea programada
Después de crear una tarea programada con PowerShell, puede abrir el Programador de tareas para ver el nombre de la tarea, sus desencadenantes y otros detalles.

Después de que la tarea programada esté registrada y aparezca en el Programador de tareas, ahora puede ejecutar el cmdlet Get-ScheduledTask para ver la tarea.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.