Búsqueda de sitios web

Cómo ejecutar un script de PowerShell: todas las opciones explicadas


Los scripts de PowerShell son una excelente manera de automatizar tareas, recopilar información o modificar propiedades de forma masiva. La mayoría de los comandos de PowerShell son solo una línea que puede copiar y pegar en PowerShell. Pero, ¿cómo se ejecuta un script de PowerShell completo?

Hay un par de opciones cuando se trata de ejecutar scripts de PowerShell, simplemente desde el cmd, usando PowerShell ISE o incluso una tarea programada.

En este artículo, explicaré las diferentes opciones para ejecutar un script de PowerShell. Además, te ayudaré con errores comunes, como "la ejecución de scripts está deshabilitada en este sistema".

Corregir la ejecución de scripts está deshabilitada en este sistema

Vamos a comenzar con un error común que impide a la mayoría de los usuarios ejecutar un script de PowerShell, el error "La ejecución de scripts está deshabilitada en este sistema". Este error es causado por la política de ejecución de PowerShell.

De forma predeterminada, la política de ejecución de PowerShell está configurada en Restringida. Esto significa que los scripts de PowerShell no se ejecutarán en absoluto.

Entonces, para ejecutar un script de PowerShell, primero debemos cambiar la política de ejecución. Para la póliza tenemos un par de opciones:

Restricted

Opción predeterminada: no permite ejecutar ningún script de PowerShell

Unrestricted

Puede ejecutar cualquier script, muestra advertencia para los scripts descargados

RemoteSigned

Requiere una firma digital para los scripts descargados. Puede
ejecutar scripts escritos localmente. Puedes desbloquear scripts descargados
para ejecutarlos sin firma

ByPass

Puede ejecutar todos los scripts y no se muestran advertencias

AllSigned

Sólo puedes ejecutar scripts firmados de editores de confianza.

Las políticas de ejecución no están diseñadas como un modelo de seguridad, sino más bien para evitar la ejecución accidental de un script de PowerShell. La mejor opción es utilizar la política RemoteSigned, de esta manera no podrás ejecutar un script descargado por accidente (primero tendrás que desbloquearlo). Lea más sobre la política de ejecución en este artículo.

Consejo

Obtenga más información sobre cómo escribir sus propios scripts de PowerShell en esta guía completa.

Para cambiar la política de ejecución en PowerShell (y corregir "La ejecución de scripts está deshabilitada en este sistema), debemos iniciar PowerShell con privilegios de administrador:

  1. Presione la tecla de Windows + X (o haga clic derecho en el menú de inicio)
  2. Elija Windows PowerShell (administrador)
  3. Ejecute el siguiente comando:
Set-ExecutionPolicy RemoteSigned

Ahora debería poder ejecutar scripts de PowerShell.

Ejecutar un script de PowerShell

Hay un par de opciones para ejecutar un script de PowerShell. La forma más conveniente es simplemente hacer clic derecho en el archivo y elegir Ejecutar con PowerShell.

Pero este método tiene una desventaja. De forma predeterminada, la mayoría de los scripts de PowerShell cerrarán la ventana de PowerShell automáticamente cuando finalice el script. Entonces, el script se ejecuta, pero no podrá leer ningún error ni resultado.

Puede resolver esto agregando la siguiente línea al final del script de PowerShell, pero no siempre es una opción conveniente:

Read-Host -Prompt "Press Enter to exit"

Utilice Windows PowerShell

Personalmente, prefiero iniciar los scripts de PowerShell desde la línea de comandos en Windows PowerShell. Hay dos formas de hacer esto: primero puede iniciar PowerShell y navegar hasta el script o abrir PowerShell en la ubicación correcta desde el explorador.

Empezamos por esto último, abriendo el PowerShell en la ubicación correcta desde el explorador. En el explorador, localice el script que desea ejecutar, en este caso, c:\temp\powershell.

  1. Haga clic derecho en el área en blanco del Explorador (no en el archivo de PowerShell)
  2. Elija Abrir ventana de PowerShell aquí
    (En Windows 11 deberá seleccionar Abrir en la Terminal de Windows)

Como puede ver, PowerShell se inicia en la carpeta c:\temp\PowerShell. Ahora podemos ejecutar el script simplemente escribiendo el nombre del archivo (escriba las primeras letras y presione Tab para autocompletarlo)

También puede iniciar primero Windows PowerShell:

  1. Haga clic derecho en el menú Inicio (o presione tecla Windows + X)
  2. Elija Windows PowerShell
  3. Navegue a la carpeta donde se encuentra el script
    cd c:\path\to\script
  4. Ejecute el script de PowerShell
    .\PowerShellExampleScript.ps1

Ejecute el script de PowerShell desde CMD

Si ha intentado ejecutar PowerShell desde cmd, es posible que haya notado que simplemente abrirá el script en el bloc de notas. Realmente no es el resultado que buscamos.

Para ejecutar el script de PowerShell, debemos indicarle al símbolo del sistema que abra el script con PowerShell. Podemos usar el siguiente cmd para esto:

PowerShell c:\path\to\script\PowerShellScript.ps1

Tenga en cuenta que deberá especificar la ruta completa al script de PowerShell. El resultado del script se muestra en el símbolo del sistema.

Si desea mantener abierta la sesión de PowerShell, puede agregar el parámetro -noexit al comando:

PowerShell -noexit c:\temp\PowerShell\PowerShellExampleScript.ps1

Usando PowerShell ISE

Cuando descarga un script de Internet, siempre es una buena idea revisarlo antes de ejecutarlo. Una forma sencilla de revisar y ejecutar un script de PowerShell es utilizar PowerShell ISE.

Para abrir un archivo de PowerShell en el editor, simplemente haga clic derecho y elija Editar.

Cuando utilice el editor por primera vez, es posible que primero necesite expandir el panel del script para ver el contenido del script de PowerShell:

Para ejecutar un script en PowerShell ISE, simplemente haga clic en el botón verde de reproducción en la barra de herramientas. Los resultados de los scripts se muestran en la consola:

Ejecute el script de PowerShell como administrador

Algunos scripts de PowerShell requieren privilegios de administrador para ejecutarse correctamente. Es posible que necesiten acceso a todas las carpetas de la unidad de su sistema o que interactúen con otras computadoras o servidores del dominio.

La forma más sencilla de ejecutar scripts de PowerShell como administrador es iniciar Windows PowerShell como administrador.

  1. Presione la tecla de Windows + X (o haga clic derecho en el menú Inicio)
  2. Elija Windows PowerShell (administrador)
  3. Haga clic en Sí en el mensaje Seguridad de la cuenta de usuario.

Ahora puede ejecutar cualquier comando o secuencia de comandos de PowerShell con privilegios de administrador. Simplemente navegue hasta el script (o incluso arrástrelo y suéltelo) para ejecutarlo.

También puede ejecutar un script de PowerShell como administrador desde la línea de comandos. Cuando tenga PowerShell abierto, podremos iniciar un nuevo proceso de PowerShell y ejecutarlo como Administrador. Opcionalmente incluso podemos especificar el archivo que queremos ejecutar:

# Open a new PowerShell windows with Administrator Privilege
Start-Process PowerShell -Verb runAs

# Run PowerShell script with Administrator Privilege
Start-Process PowerShell -Verb runAs -ArgumentList "-file c:\temp\powershell\powershellexamplescript.ps1"

Concluyendo

Espero que hayas podido ejecutar tu script de PowerShell con los pasos anteriores. Asegúrese de haber configurado la política de ejecución correctamente antes de ejecutar un script de PowerShell. También puede programar scripts de PowerShell utilizando el Programador de tareas.

Si tiene alguna pregunta, simplemente deje un comentario a continuación. Asegúrese de leer también más sobre cómo configurar su perfil de PowerShell.

Artículos relacionados