Cómo ejecutar un script de PowerShell

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, lo ayudaré con los errores comunes, como «la ejecución de scripts está deshabilitada en este sistema».

Arreglar la ejecución de secuencias de comandos está deshabilitada en este sistema

Vamos a comenzar con un error común que impide que la mayoría de los usuarios ejecuten 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 se establece en Restringido. Esto significa que los scripts de PowerShell no se ejecutarán en absoluto.

La ejecución de scripts está deshabilitada en este sistema

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:

Política de Ejecución Descripción
Restringido Opción predeterminada: no permite ejecutar ningún script de PowerShell
Irrestricto Puede ejecutar cualquier script, muestra una advertencia para los scripts descargados
RemotoFirmado Requiere una firma digital para los scripts descargados. Puedes
ejecutar scripts escritos localmente. Puede desbloquear scripts descargados
ejecutarlos sin firma
Derivación Puede ejecutar todos los scripts y no se muestran advertencias
TodosFirmados Solo puede 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 el RemotoFirmado política, de esta manera no puede ejecutar un script descargado por accidente (primero tendrá que desbloquearlo).

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

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

Ahora debería poder ejecutar PowerShell Scripts.

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.

ejecutar el script de PowerShell
Ejecutar secuencia de comandos de PowerShell

Pero este método tiene un inconveniente. 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 o resultado.

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

Read-Host -Prompt "Press Enter to exit"

Usar Windows PowerShell

Personalmente, prefiero iniciar los scripts de PowerShell desde la línea de comandos en el mismo 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.

Comenzamos con este último, abriendo el PowerShell en la ubicación correcta desde el explorador. En el explorador, busque el script que desea ejecutar, en este caso, c:\temp\powershell.

  1. Botón derecho del ratón en el área en blanco en Explorer (no en el archivo de PowerShell)
  2. Elegir Abra la 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 completarlo automáticamente)

ejecutar el script de powershell

También puede iniciar primero Windows PowerShell:

  1. Haga clic derecho en el menú de inicio (o presione Tecla de Windows + X)
  2. Elegir Windows PowerShell
  3. Navegar a la carpeta donde se encuentra el script
    cd c:\path\to\script <enter>
  4. Correr la secuencia de comandos de PowerShell
    .\PowerShellExampleScript.ps1 <enter>
ejecutar el script de PowerShell desde la línea de comandos

Ejecute el script de PowerShell desde CMD

Si ha intentado ejecutar un PowerShell desde cmd, es posible que haya notado que simplemente abrirá el script en el bloc de notas. No es realmente el resultado que estamos buscando.

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
ejecutar el script de powershell desde cmd

Tenga en cuenta que tendrá que 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 -noexit parámetro al comando:

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

Uso de PowerShell ISE

Cuando descarga un script de Internet, siempre es una buena idea revisar el script antes de ejecutarlo. Una manera fácil de revisar y ejecutar un script de PowerShell es usar PowerShell ISE.

Para abrir un archivo de PowerShell en el editor, simplemente haga clic con el botón derecho y elija Editar

Cuando utilice el editor por primera vez, es posible que primero deba expandir el panel de secuencias de comandos para ver el contenido de la secuencia de comandos 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 en la unidad de su sistema o que necesiten interactuar con otras computadoras o servidores del dominio.

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

  1. Prensa Tecla de Windows + X (o haga clic derecho en el menú de inicio)
  2. Elegir Windows PowerShell (administrador)
  3. Hacer clic en el indicador de 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, podemos iniciar un nuevo proceso de PowerShell y ejecutarlo como Administrador. Opcionalmente podemos incluso 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"

Terminando

Espero que haya podido ejecutar su secuencia de comandos 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.

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.

Otros artículos relacionados

Buzón: cambie la configuración del buzón con PowerShell

Buzón: cambie la configuración del buzón con PowerShell

El cmdlet Set-Mailbox en PowerShell nos permite cambiar la configuración del buzón en Exchange Server y Exchange Online. Podemos usar ...
Leer Más
Cómo usar Export-CSV en PowerShell

Cómo usar Export-CSV en PowerShell

Con PowerShell, puede extraer todo tipo de información de servicios como Active Directory o Microsoft 365. Pero a veces necesita ...
Leer Más
Conéctese a Exchange Online con PowerShell

Conéctese a Exchange Online con PowerShell

Administrar Exchange Online con PowerShell hace que muchas tareas diarias sean mucho más fáciles (y rápidas). No solo para sus ...
Leer Más
Get-ADComputer- Cómo encontrar y exportar computadoras AD PowerShell

Get-ADComputer- Cómo encontrar y exportar computadoras AD PowerShell

¿Necesita exportar todas las computadoras desde una unidad organizativa o buscar una computadora en su Active Directory? ¿O quieres contar ...
Leer Más
Cómo utilizar Select-String equivalente a PowerShell Grep

Cómo utilizar Select-String equivalente a PowerShell Grep

Cuando necesite buscar a través de una cadena o archivos de registro en Linux, podemos usar el grep dominio. Para ...
Leer Más
Explicación del cliente PowerShell SSH y la comunicación remota

Explicación del cliente PowerShell SSH y la comunicación remota

¿Necesita administrar un servidor remoto o un dispositivo de red? Entonces probablemente esté usando SSH para conectarse y administrarlos. El ...
Leer Más

Deja un comentario