Cómo automatizar scripts de PowerShell

PowerShell ofrece opciones avanzadas para monitorear y administrar todos los procesos en su sistema. Entonces, si desea automatizar uno o más procesos, 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 la entrada de una canalización y la salida a otra para el mismo objeto. De modo que puede usar varios cmdlets en el mismo objeto y ejecutarlos como una sola tarea. Esta característica hace que la automatización de scripts de PowerShell sea extremadamente efectiva.

Si está interesado en saber cómo automatizar scripts de PowerShell, este artículo debería brindarle toda la información que necesita.

¿Cómo automatizo los 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 cierto nivel de restricciones en dichos scripts. Y la mayoría de los sistemas tienen esta configuración habilitada de manera predeterminada.

Entonces, 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

Establecer política de ejecución

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 siguientes métodos para automatizar los scripts de PowerShell en Windows:

Usar el programador de tareas

La herramienta gráfica del programador de tareas proporciona una manera fácil de automatizar los scripts de PowerShell. Esta es la mejor opción cuando desea programar un script que descargó u obtuvo de una fuente externa y no tiene idea de cómo usar PowerShell.

  1. Abrir Ejecutar.
  2. Escribe taskschd.msc y presione Entrar para abrir el Programador de tareas.
  3. Haga clic derecho en Biblioteca del programador de tareas y seleccione crear tarea.
    Crear tarea del programador de tareas
  4. Sobre el General Proporcione cualquier nombre y descripción para la tarea en la pestaña para automatizar los scripts.
  5. Escoger entre Ejecutar solo si el usuario ha iniciado sesión y Indicar si el usuario está logueado o nosegún sea necesario.
    cartas credenciales
  6. Si desea utilizar una cuenta de usuario diferente para ejecutar la tarea,
    • haga clic en Cambiar usuario o grupo > progresivo > Encuentra ahora.
    • Seleccione su cuenta de la lista y haga clic en OK > OK.
      Usuario OK
  7. Establezca otras opciones, por ejemplo, B. si desea derechos de administrador, si desea ocultar la tarea o configurarla para una versión diferente del sistema operativo.
  8. ahora ve a disparadores Pestaña y haz clic Nuevo.
    gatillo-nuevo
  9. Seleccione el esquema o la instancia si desea ejecutar el script desde la lista desplegable junto a él. Iniciar la tarea.
  10. si has elegido Según un horario, debe establecer la frecuencia y la fecha de inicio. De lo contrario, debe especificar el usuario para la mayoría de las opciones.
  11. Luego, si lo desea, especifique la configuración avanzada. Asegúrese de comprobar Encendido si lo haces
  12. hacer clic OK.
    Activar bien
  13. Puede editar el disparador en cualquier momento haciendo clic y seleccionándolo Para editar. También puede agregar otro disparador a la tarea.
  14. ahora ve a Comportamiento toque y seleccione Nuevo.
  15. Escribe powershell o powershell.exe en el campo de texto del programa/script.
  16. Escribe -File “full path to the script” junto a Agregar argumentos. Por ejemplo, -File “D:Newscript.ps1”
    Programador de tareas de acción
  17. Tocar OK.
  18. Ir Condición y ajustes pestañas y establecer las opciones allí.
  19. hacer clic OK para completar la tarea.
Leer:   Cómo silenciar tu micrófono en Windows

Uso de PowerShell

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

Primero, analicemos los cmdlets que necesita para crear dichos esquemas. Si ya sabe cuáles son, puede continuar con los pasos principales. De lo contrario, tendrá que pasar por él para comprender cómo se realiza el proceso.

Nuevo activador de tareas programadas

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

Puede usar los siguientes atributos con este cmdlet para activar periódicamente un trabajo:

  • -At: especifica la hora a la que debe ejecutarse la tarea
  • -Once: Orden de inicio una vez Por ejemplo $trigger = New-ScheduledTaskTrigger -Once -At 4am
    nuevo disparador programado
  • -Daily: Comience la tarea con diario. También puedes 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.
    nuevo-programado-activador-intervalo-diario
  • -Semanal: Inicia la semana de tareas. También puede usar -WeeksInterval # junto con -Weekly para ejecutar una tarea una vez cada # semana.

Para ejecutar la tarea al inicio, debe usar el atributo -AtStartup. Asimismo, debe usar -AtLogon para realizar tareas cuando el usuario inicia sesión. Puede usar el atributo -User para especificar la cuenta de usuario exacta.

Nueva acción de tarea programada

Indica qué aplicación desea ejecutar. También debe crear un objeto de acción de tarea asignándole un valor diferente si desea registrar la tarea en su computadora.

Leer:   Windows 10 no puede ver otras computadoras en la red [Solucionado]

Las principales funciones que puede utilizar son:

  • -Execute: especifica el ejecutable que necesita para automatizar; en este caso, powershell.exe
  • -Argument: Especifica el archivo while para abrir con el ejecutable anterior. Es mejor ingresar la ruta completa del script, de lo contrario, PowerShell lo buscará en el directorio de trabajo. Por ejemplo, $action = New-ScheduledTaskAction -Execute “powershell.exe” -Argument “D:Newscript.ps1”
    powershell-ps1-tarea-acción
  • -WorkingDirectory: Describa el directorio de trabajo donde su sistema ejecuta la tarea. El valor predeterminado es %WinDir%System32

Tarea programada del registro

Registra el trabajo 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 requeridos son:

  • -TaskName: Cualquier nombre para la tarea.
  • -Trigger: Aquí es donde agrega el objeto activador que creó New-ScheduledTaskTrigger
  • -User: 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.
  • -Action: Aquí se agrega el objeto de trabajo que se ejecutará New-ScheduledTaskAction Cmdlet creado.

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

Tarea programada de registro

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

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

  1. Abra Ejecutar presionando Win + R.
  2. Escribe powershell y presione Entrar para abrir Windows PowerShell. Para usar el núcleo de PowerShell (versiones 6.x, 7.x), debe usar el comando Ejecutar pwsh.
    Ejecutar Powershell
  3. Cree un objeto activador con el New-ScheduledTaskTrigger cmdlet.
  4. A continuación, cree un objeto de trabajo para ejecutar un script de PowerShell.
  5. Finalmente, registre la tarea programada.
  6. Por ejemplo, puede ingresar los siguientes cmdlets en PowerShell:
    • $Trigger = New-ScheduledTaskTrigger -Once -At 10am
    • $Action = New-ScheduledTaskAction -Execute “powershell.exe” -Argument “D:Newscript.ps1”
    • $User = "DESKTOPUser"
    • Register-ScheduledTask -TaskName "PowerShell Script" -Trigger $Trigger -User $User -Action $Action
      esquema-powershell-script-powershell

Gracias por leer absolutoyrelativo.com. ¡Hasta la próxima!

Deja un comentario