Use PowerShell para administrar tareas programadas en Windows

Reviso varias ubicaciones regularmente en los sistemas Windows que ejecuto, incluido el Administrador de tareas de Windows para enumerar los procesos en ejecución, las entradas de inicio automático y también las tareas programadas del sistema.

Lo hago por un par de razones, incluida la seguridad, para asegurarme de que nada se deslice y se ejecute en el sistema que considero malicioso, spyware o no deseado de otras maneras, pero también para destrabar el sistema deshabilitando, bloqueando o eliminando programas que comienzan con el sistema o según lo programado.

Si bien es posible abrir el Programador de tareas mediante la búsqueda, no le proporciona una interfaz limpia para revisar la lista de tareas rápidamente.

Un programa que me gusta usar para la tarea es la excelente Vista del Programador de tareas de Nirsoft que, como de costumbre, es portátil y altamente eficiente.

El PowerShell de Windows ofrece otra opción rápida en Windows 8 y versiones posteriores. El comando Get-ScheduledTask devuelve todas o selecciona tareas programadas de la computadora local.

  1. Abra una ventana de símbolo del sistema. Puede hacerlo tocando la tecla de Windows, escribiendo Powershell.exe, haciendo clic derecho en el resultado, seleccionando "ejecutar como administrador" y presionando enter. Tenga en cuenta que el comando get-scheduletask no requiere elevación mientras que todos los comandos de administración sí lo requieren.
  2. Escriba Get-ScheduledTask

El comando básico enumera todas las tareas de la computadora local ordenadas por ruta. Solo incluye la ruta de la tarea, el nombre de la tarea y el estado de la tarea, que a veces puede ser suficiente.

El nombre ayuda a identificar la tarea, mientras que el estado resalta si está habilitada o deshabilitada.

Sin embargo, lo que lo hace más poderoso son los parámetros que puede agregar al comando para mostrar detalles adicionales o tareas de filtro.

Aquí hay algunos ejemplos de comandos que pueden resultarle útiles:

  • Get-ScheduledTask -TaskName Google * devuelve todas las tareas que comienzan con Google.
  • Get-ScheduledTask -TaskPath \ devuelve todas las tareas que se colocan en la raíz de TaskPath.

Si bien es útil mostrar las tareas programadas de esta manera, también puede administrar tareas utilizando PowerShell. Tenga en cuenta que necesita derechos elevados para ejecutar deshabilitar o habilitar tareas en un sistema. Esto significa que necesita ejecutar PowerShell desde un símbolo del sistema elevado.

Los comandos Disable-ScheduledTask y Enable-Scheduled-Task han sido diseñados para eso. Como sugieren los nombres, el primero deshabilita las tareas que seleccione mientras que el segundo las habilita.

Si ejecuta los comandos directamente, debe especificar nombres o rutas de tareas explícitamente. Sin embargo, existe una solución alternativa que puede usar para habilitar o deshabilitar múltiples tareas a la vez.

Los comandos que puede encontrar útiles son:

  • Disable-ScheduledTask -taskname "Adobe Flash Player Updater" desactiva la tarea Adobe Flash Player Updater.
  • Enable-ScheduledTask -taskname "Adobe Flash Player Updater" habilita la tarea Adobe Flash Player Updater.
  • Get-ScheduledTask -taskname Google * | Disable-ScheduledTask deshabilita todas las tareas que devuelve el comando get (comenzando con Google),

Otros comandos de interés relacionados con la tarea son start-Scheduledtask, Stop-Scheduledtask y Unregister-ScheduledTarek.