Con más y más scripts escritos en PowerShell, se programan muchas más tareas para ejecutarse en PowerShell, en lugar de archivos por lotes. Por lo tanto, es importante programar correctamente una tarea que ejecute los scripts de PowerShell sin problemas y con éxito.
Para empezar, abre Programador de tareas haciendo clic en el menú Inicio y escribiendo Programador de tareas y haga clic en Crear tarea básica … o Crear tarea … en el panel Acciones.
A Acción paso, seleccione Iniciar un programa y haga clic en Siguiente.
En la siguiente ventana, escriba PowerShell como Programa / secuencia de comandos y la ruta completa del archivo de secuencia de comandos como argumento. Si la ruta incluye algún espacio, envuelva toda la cadena con comillas completas.

Haga clic en Siguiente para finalizar la configuración.
¿Por qué falló el trabajo?
La tarea no tendrá problemas para ejecutarse, siempre que la política de ejecución local de PowerShell esté configurada como no restringida. O fallará.
Entonces, ¿cómo evitar que esto suceda?
Puede especificar qué política usar con el conmutador -Política de ejecución, como abajo:
PowerShell -ExecutionPolicy Unrestricted -File "fullpathscript.ps1"
Para las tareas programadas, coloque PowerShell en el cuadro Programa / script y el resto en el cuadro de argumentos.
¿Cómo oculto la ventana de PowerShell durante el tiempo de ejecución?
De forma predeterminada, cuando se ejecuta el script, abre una ventana de la consola de PowerShell y la cierra cuando finaliza el trabajo. Si el trabajo es relativamente rápido, no importa dejarlo abierto, pero cuando el trabajo tarda más en terminar, es mejor que no sea tan obvio.
Ahí es donde el interruptor -WindowStyle entra en juego. Hay 4 tipos de estilos entre los que puede elegir: Normal, Minimizado, Maximizado y Oculto. Aparentemente, lo que buscamos es oculto.
Juntar,
PowerShell -ExecutionPolicy Unrestricted -WindowStyle Hidden -File "fullpathscript.ps1"
¿Qué pasa con PowerShell 7?
Si tiene PowerShell 7 instalado y desea que ejecute su script compatible con PowerShell 7, use pwsh para iniciar PowerShell en su lugar. Todos los interruptores mencionados anteriormente todavía se aplican.
