PowerShell brinda opciones avanzadas para controlar y administrar todos los procesos en su sistema. Entonces, si desea automatizar cualquier proceso o un montón de ellos, PowerShell es el camino a seguir.

A diferencia de los Símbolos del sistema, PowerShell usa cmdlets. Estos cmdlets no son ejecutables independientes, sino que procesan entradas de una canalización y dan salida a otra para el mismo objeto. Por lo tanto, puede usar varios cmdlets para el mismo objeto y hacer que se ejecuten como una sola tarea. Esta propiedad hace que la automatización de los scripts de PowerShell sea extremadamente eficaz.

Si desea saber cómo puede automatizar los scripts de PowerShell, este artículo le proporcionará toda la información necesaria.

¿Cómo automatizar scripts de PowerShell?

Dependiendo de su sistema, es posible que no pueda ejecutar scripts de PowerShell en su computadora. Esto se debe a que PowerShell incluye una configuración llamada política de ejecución para proteger su computadora al imponer un nivel particular de restricción en dichos scripts. Y la mayoría de los sistemas tienen esta configuración habilitada de forma predeterminada.

Por lo tanto, antes de automatizar los scripts, debe eliminar o reducir la restricción. Primero, abra PowerShell como administrador e ingrese el siguiente comando:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned

Si necesita ejecutar scripts sin firmar desde Internet o una fuente externa, debe usar el siguiente comando en su lugar:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy Unrestricted

Luego, use uno de los métodos a continuación para automatizar los scripts de PowerShell en Windows:

Uso del Programador de tareas

El La herramienta gráfica del Programador de tareas proporciona una manera fácil de automatizar los scripts de PowerShell. Es la mejor opción si desea programar un script que descargó o obtuvo de una fuente externa y no tiene mucha idea sobre cómo usar PowerShell.

Abra Ejecutar. Escriba taskchd.msc y presione Entrar para abrir el Programador de tareas. Haz clic derecho en Biblioteca del programador de tareas y selecciona Crear tarea.
En la pestaña General, proporcione el nombre y la descripción que desee para la tarea para automatizar los scripts. Elija entre Ejecutar solo cuando el usuario haya iniciado sesión y Ejecutar tanto si el usuario ha iniciado sesión como si no, según sus necesidades.
Si desea utilizar otra cuenta de usuario para ejecutar la tarea, haga clic en Cambiar usuario o grupo> Avanzado> Buscar ahora. Seleccione su cuenta de la lista y haga clic en Aceptar> Aceptar.
Configure otras opciones, como si desea privilegios de administrador, si desea ocultar la tarea o configurarla para otra versión del sistema operativo. Ahora, vaya a la pestaña Disparadores y haga clic en Nuevo.
Elija la programación o la instancia en la que desea ejecutar el script en el cuadro desplegable junto a Comenzar la tarea. Si seleccionó En un horario, debe establecer la frecuencia y la fecha de inicio. De lo contrario, para la mayoría de las opciones, debe especificar el usuario. Luego, establezca la configuración avanzada si lo desea. Asegúrese de marcar Habilitado si lo hace. Haz clic en Aceptar.
Siempre puedes edite el Activador haciendo clic en él y seleccionando Editar. También puede agregar otro disparador para la tarea. Ahora, vaya a la pestaña Acciones y seleccione Nuevo. Escriba powershell o powershell.exe en el cuadro de texto Programa/secuencia de comandos. Escriba-File”ruta completa al script”junto a Agregar argumentos. Por ejemplo,-File”D:\New\script.ps1″
Presiona OK. Vaya a las pestañas Condiciones y Configuración y especifique las opciones allí. Haz clic en Aceptar para crear la tarea.

Uso de PowerShell

Si está familiarizado con el uso de PowerShell para secuencias de comandos, el método más fácil para automatizar cualquier secuencia de comandos es crear una tarea programada a través de PowerShell mismo.

Primero, discuta los cmdlets que necesita usar para crear tales programaciones. Si ya sabe cuáles son, puede pasar directamente a los pasos principales. De lo contrario, deberá revisarlos para comprender cómo ejecutar el proceso.

New-ScheduledTaskTrigger

Crea un objeto desencadenante para especificar cuándo para programar la tarea. Debe asignar este cmdlet a una variable para crear un objeto desencadenante.

Puede usar los siguientes atributos con este cmdlet para desencadenar una tarea a intervalos regulares:

-En: especifica la hora en que desea ejecutar la tarea-Una vez: Inicia la tarea una vez Por ejemplo, $trigger=New-ScheduledTaskTrigger-Once-A las 4 a.m.
-Daily: Inicia la tarea con daily. También puede usar-DaysInterval # junto con-Daily para ejecutar la tarea una vez cada # días. Por ejemplo, $trigger=New-ScheduledTaskTrigger-Daily-DaysInterval 5-At 4am crea un disparador para ejecutar una tarea una vez cada 5 días.
-Weekly: inicia la semana de tareas. También puede usar-WeeksInterval # junto con-Weekly para ejecutar una tarea una vez cada # semanas.

Si desea ejecutar la tarea al inicio, debe usar el atributo-AtStartup. De manera similar, debe usar-AtLogon para ejecutar tareas en el inicio de sesión del usuario. Puede usar el atributo-User para especificar la cuenta de usuario exacta.

New-ScheduledTaskAction

Especifica qué aplicación desea ejecutar. También necesita crear un objeto de acción de tarea asignándolo a otro valor si desea registrar la tarea en su computadora.

Los principales atributos que puede usar son:

-Execute: Especifica el archivo ejecutable que necesita para automatizar; en este caso, powershell.exe-Argumento: especifica el archivo while para abrirlo con el archivo ejecutable anterior. Es mejor ingresar la ruta completa del script, de lo contrario, PowerShell lo busca en el directorio de trabajo. Por ejemplo, $acción=New-ScheduledTaskAction-Ejecutar”powershell.exe”-Argumento”D:\New\script.ps1″
-WorkingDirectory: describa el directorio de trabajo donde su sistema ejecuta la tarea. El predeterminado es %WinDir%\System32

Register-ScheduledTask

Registra la tarea en su computadora local. Debe usar los objetos que crea con los cmdlets anteriores en los argumentos de este cmdlet para automatizar los scripts de PowerShell. Los atributos necesarios son:

-TaskName: Cualquier nombre que desee para la tarea.-Desencadenador: aquí adjunta el objeto desencadenante que crea utilizando New-ScheduledTaskTrigger-Usuario: especifique la cuenta de usuario a la que se aplica la tarea. También puede especificar una computadora si desea automatizar los scripts para una computadora conectada a la red.-Acción: aquí adjunta el objeto de tarea que crea el cmdlet New-ScheduledTaskAction.

Por ejemplo, Register-ScheduledTask-TaskName”PowerShell Script”-Trigger $Trigger-User $User-Action $Action

Hay muchos cmdlets adicionales que puede usar para este propósito, así como atributos que puede usar con ellos. Dado que son opcionales y no relevantes en la mayoría de los casos, no los hemos incluido aquí. Pero aún puede visitar su documentación en la plataforma de Microsoft si desea obtener más información sobre ellos.

Finalmente, así es como puede usar estos cmdlets para automatizar los scripts de PowerShell:

Abra Ejecutar presionando Win + R. Escriba powershell y presione Entrar para abre Windows PowerShell. Si desea usar el núcleo de PowerShell (versiones 6.x, 7.x), debe usar el comando Ejecutar pwsh.
Cree un objeto desencadenante mediante el cmdlet New-ScheduledTaskTrigger. Luego, cree un objeto de tarea para ejecutar un script de PowerShell. Finalmente, registre la tarea programada. Por ejemplo, puede ingresar los siguientes cmdlets en PowerShell: $Trigger=New-ScheduledTaskTrigger-Once-At 10am $Action=New-ScheduledTaskAction-Execute”powershell.exe”-Argument”D:\New\script.ps1″$User=”ESCRITORIO\Usuario”Register-ScheduledTask-TaskName”PowerShell Script”-Activador $Activador-Usuario $Usuario-Acción $Acción

Categories: IT Info