Cómo ejecutar un script de PowerShell desde un archivo por lotes
-
Usa el parámetro
-File
para ejecutar un script de PowerShell desde un archivo por lotes -
Usa
RemoteSigned
como-ExecutionPolicy
para ejecutar un script de PowerShell desde un archivo por lotes -
Usa el interruptor
Bypass
para ejecutar un script de PowerShell desde un archivo por lotes - Ejecutar un script de PowerShell desde un archivo por lotes abriendo PowerShell como administrador
- Conclusión

Un script de PowerShell es un archivo de texto que utiliza la extensión .ps1
que contiene una colección de comandos. PowerShell ejecuta esos comandos en secuencia.
Un archivo por lotes es un archivo de texto que utiliza la extensión .bat
. También contiene una colección de comandos que se ejecutan en secuencia.
Los comandos se pueden ejecutar abriendo el archivo .bat
. Este tutorial te enseñará a ejecutar un script de PowerShell desde un archivo por lotes.
Hemos creado un script de PowerShell, myscript.ps1
, que contiene el siguiente comando. El comando pause
detiene la ejecución de un archivo por lotes hasta que presiones la tecla Enter.
Write-Host "Your script is executed successfully."
Pause
Usa el parámetro -File
para ejecutar un script de PowerShell desde un archivo por lotes
Ejecutar un script de PowerShell desde un archivo por lotes puede ser una técnica útil para automatizar tareas en entornos de Windows. El método del parámetro -File
permite una integración fluida de scripts de PowerShell en flujos de trabajo de archivos por lotes.
El siguiente comando se utiliza en el archivo bat
para ejecutar un script de PowerShell.
@echo off
powershell -File script.ps1
En este fragmento de código, primero usamos @echo off
para suprimir la visualización de los comandos que se están ejecutando, asegurándonos de que solo la salida del script sea visible para el usuario. Luego, usamos el comando powershell
con el parámetro -File
para ejecutar un script de PowerShell llamado script.ps1
.
Este comando lanza una sesión de PowerShell y especifica el archivo de script que se va a ejecutar. Al combinar estos comandos, podemos ejecutar sin problemas un script de PowerShell desde un archivo por lotes, agilizando el proceso de ejecución de comandos de PowerShell en un entorno de archivo por lotes.
Salida:
Usa RemoteSigned
como -ExecutionPolicy
para ejecutar un script de PowerShell desde un archivo por lotes
PowerShell tiene diferentes políticas de ejecución que determinan qué scripts se pueden ejecutar y desde dónde. Una forma de eludir estas restricciones es especificando el parámetro -ExecutionPolicy
con un valor de RemoteSigned
.
Esta política de ejecución permite que los scripts creados localmente se ejecuten sin requerir una firma digital, mientras que los scripts descargados de Internet deben estar firmados por un editor de confianza.
@echo off
powershell -ExecutionPolicy RemoteSigned -File script.ps1
En el fragmento de código proporcionado, powershell -ExecutionPolicy RemoteSigned -File script.ps1
se utiliza para ejecutar el script de PowerShell llamado script.ps1
ubicado en el directorio de trabajo actual. Al especificar el parámetro -ExecutionPolicy
como RemoteSigned
, garantizamos que los scripts creados localmente se puedan ejecutar sin una firma digital, mientras que los scripts descargados de Internet deben estar firmados por un editor de confianza.
Salida:
Usa el interruptor Bypass
para ejecutar un script de PowerShell desde un archivo por lotes
Para eludir restricciones y permitir que el script se ejecute sin limitaciones impuestas por la política de ejecución, podemos utilizar el parámetro -ExecutionPolicy
con el valor Bypass
. Este método proporciona una forma sencilla de ejecutar scripts de PowerShell desde un archivo por lotes mientras se eluden las restricciones de la política de ejecución.
@echo off
powershell -ExecutionPolicy Bypass -File C:\path\script.ps1
En el fragmento de código proporcionado, powershell -ExecutionPolicy Bypass -File C:\path\script.ps1
se utiliza para ejecutar el script de PowerShell llamado script.ps1
ubicado en el directorio C:\path\scripts
. Al establecer la política de ejecución en Bypass
, instruimos a PowerShell a ignorar cualquier restricción de política de ejecución, permitiendo así que el script se ejecute sin obstáculos.
Salida:
También puedes ejecutar el siguiente comando.
@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"
En este comando proporcionado, utilizamos -ExecutionPolicy Bypass
para instruir a PowerShell a ignorar cualquier restricción de política de ejecución, permitiendo así que el script se ejecute sin limitaciones. Además, el parámetro -NoProfile
asegura que el perfil de PowerShell del usuario no se cargue, lo que ayuda a mantener un entorno de ejecución limpio para el script.
Salida:
Ejecutar un script de PowerShell desde un archivo por lotes abriendo PowerShell como administrador
Ejecutar un script de PowerShell desde un archivo por lotes con privilegios elevados abriendo PowerShell como administrador es un método crucial para ejecutar scripts que requieren acceso administrativo. Este enfoque asegura que la sesión de PowerShell tenga los permisos necesarios para realizar tareas administrativas, como modificar configuraciones del sistema o acceder a recursos restringidos.
@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1'"
En este fragmento de código, utilizamos powershell.exe
para iniciar una sesión de PowerShell con privilegios elevados. El parámetro -Verb RunAs
en el cmdlet Start-Process
asegura que PowerShell se abra con privilegios administrativos.
Al pasar los argumentos necesarios (-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1
) a la nueva sesión de PowerShell, habilitamos la ejecución del script especificado (script.ps1
) con permisos elevados.
Salida:
Conclusión
En este artículo, exploramos varios métodos para ejecutar un script de PowerShell desde un archivo por lotes. Aprendimos a utilizar el parámetro -File
para ejecutar directamente un script, así como a eludir las restricciones de la política de ejecución usando los parámetros RemoteSigned
y Bypass
.
Además, discutimos cómo abrir PowerShell como administrador para ejecutar scripts con privilegios elevados. Cada método proporciona un enfoque único para ejecutar scripts de PowerShell desde archivos por lotes, ofreciendo flexibilidad y control sobre el entorno de ejecución.