PowerShell - RunOnce

Que es RunOnce? Es una manera de ejecutar comandos gracias al registro de Windows. Con esta clave de registro podemos declarar acciones post-reinicio, para poder completar nuestros procedimientos y/o instalaciones de manera más automática.

Esta clave se encuentra en dos rutas particulares:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

Por lo que podemos definir si queremos que el código se ejecute luego de reiniciar la maquina utilizando la ruta correspondiente a HKEY_LOCAL_MACHINE, sin importar que usuario inicia sesión. O tenemos la ruta de HKEY_CURRENT_USER que permite ejecutar las acciones necesarias sólo con el usuario que crea la clave en el momento de estar iniciada la sesión.

Un ejemplo de uso, podría ser la necesidad de ejecutar un script ya guardado en la ruta C:\Scripts\Parte2.ps1 para poder completar un procedimiento en particular. Para ello vamos a agregar una línea de código en nuestro script “Parte1.ps1”:

New-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce -Name "Parte2" -Value "powershell.exe -ExecutionPolicy Unrestricted -Command `"C:\Scripts\Parte2.ps1`""

Les comparto un enlace que habla sobre esta clave en particular: link.

Happy scripting!

Comments