PowerShell tiene muchas capas diferentes de seguridad que evitan que se ejecuten scripts y comandos maliciosos. Por ejemplo, de forma predeterminada, no puede ejecutar un script que haya descargado de Internet a menos que cambie la política de ejecución de PowerShell. Otra medida de seguridad le impide ejecutar un script haciendo doble clic en él. No puede asociar scripts de PS1 con PowerShell y la única forma de ejecutar un script es hacer clic con el botón derecho y seleccionar la opción de ejecución. Al hacer doble clic en él, se abrirá en el Bloc de notas. Esto es excelente como medida de seguridad, pero es molesto si desea que se ejecute un script de PowerShell cuando se ejecuta una tarea programada. La solución es simple. Puede usar un script por lotes para ejecutar automáticamente scripts de PowerShell.

Mira esto -   Cómo enviar un correo electrónico a un canal específico de Microsoft Teams

Script por lotes

El siguiente es el script por lotes que necesita para ejecutar automáticamente los scripts de PowerShell en Windows 10. Cada script de PowerShell necesitará su propio script por lotes.

Sintaxis

@ECHO OFF
PowerShell.exe -Command "Path to script"
PAUSE

Reemplace «Ruta a la secuencia de comandos» con la ruta real a la secuencia de comandos de PowerShell que desea ejecutar. Considere el siguiente ejemplo;

Ejemplo

@ECHO OFF
PowerShell.exe -Command "C:Reminder-ScriptsMilkBuy-Milk.ps1"
PAUSE

Abra el Bloc de notas y pegue el script en él. Guarde el archivo con la extensión .bat.

Lo que hace este archivo por lotes es que abre PowerShell y luego ejecuta el script al que lo ha señalado. Aún no puede hacer doble clic en un script de PowerShell en su escritorio y hacer que se ejecute automáticamente en PowerShell. El archivo actual abrirá una ventana de símbolo del sistema y mostrará un mensaje de ‘Presione cualquier tecla para continuar’. Cuando presione una tecla, solo entonces se ejecutará el script de PowerShell. Si prefiere que el script se ejecute sin tener que intervenir, edite el script anterior y elimine la línea ‘PAUSE’. Debe tener un aspecto como este;

@ECHO OFF
PowerShell.exe -Command "Path to script"

Programador de tareas y scripts de PowerShell

Suponemos que desea ejecutar automáticamente un script de PowerShell como una acción para una tarea programada. Para lograr esto, primero debe crear un script de Batch correspondiente, como se muestra arriba, para ejecutar el script de PowerShell. A continuación, cuando cree una tarea programada, seleccione el script por lotes en la Acción que debe realizar en respuesta a un desencadenante. Esto, en efecto, ejecutará el script de PowerShell.

Mira esto -   Cómo agregar una superposición en OBS en Windows 10

Hemos utilizado el Programador de tareas como ejemplo aquí, pero si está utilizando cualquier otra aplicación de automatización, aún deberá llamar al script Batch. La única excepción es si la aplicación de automatización que está utilizando puede abrir PowerShell y luego apuntar al script de PowerShell.