PowerShell es tanto un shell de línea de comandos como un lenguaje de secuencias de comandos. Realmente no sorprende que sea el preferido por muchos usuarios que tienen tareas que desean ejecutar automáticamente para administrar los sistemas operativos y sus procesos.
Uno de sus requisitos frecuentes es evitar que PowerShell se cierre después de ejecutar un script. Desean ejecutar un script de PowerShell y hacer que la ventana permanezca abierta después de que termine de ejecutarse. Esto es imprescindible para iniciar sesión de forma remota en otro servidor utilizando las credenciales solicitadas cuando ejecutan el script.
Entonces, sin más preámbulos, analicemos algunos consejos rápidos para mantener abierta una ventana de PowerShell después de que el script termine de ejecutarse.
¿Cómo puedo evitar que PowerShell se cierre después de ejecutar un script?
1. Inicie una conexión remota siguiendo estos pasos
- Necesitas crear un archivo llamado ejecutar.ps1 en el escritorio.
- Pega este contenido en él:
host claro
$br = “`n”;$br
Salida de escritura ‘Paso 1: presione 1 para que Powershell se vuelva a cargar’
Salida de escritura ‘Paso 2: Presione 2 para iniciar sesión remota’
$br
Write-Host ‘Este script lo hará’ -NoNewline -ForegroundColor Green
Write-Host ‘ not ‘ -ForegroundColor Red -BackgroundColor Black -NoNewline
Write-Host ‘indica en qué paso se encuentra’, -ForegroundColor Green
Write-Host ‘si no está seguro, presione 1 nuevamente y luego 2.’ -Color de primer plano Verde
$br
$input = Read-Host ‘Ingrese su elección’
interruptor ($ entrada) {
# Cambia el nombre de la ejecución.ps1 si quieres
1{powershell.exe -noexit “C:usuarios$env:nombredeusuarioDesktopexecute.ps1” -noprofile}
#
2{
Clear-Host;Write-Warning ‘Está a punto de conectarse al servidor remoto’
# Cambie el ‘RemoteServerName’ al nombre de su servidor y cambie el ‘domainname’ a su nombre de dominio real
Enter-PSSession -ComputerName RemoteServerName -Credential “domainname$env:username”
}
default{Write-Warning ‘Ha ocurrido un error’}
} - Ejecutarlo. La primera vez que haga eso, presione 1 para abrirlo de nuevo con el interruptor ‘sin salida’.
- La segunda vez, presione 2 para iniciar la conexión remota a la computadora remota.
2. Use el comando Pausa
¿Por qué no probar el comando Pausa al final de la ejecución? Inmediatamente hará que un nuevo intérprete de comandos se inicie y se ejecute en segundo plano.
Esto hace que la ventana de PowerShell espere hasta que decidas presionar más la tecla Intro, así que hazlo:
cmd /c pausa
3. Agregue una línea al final de su script
Otra solución rápida pero efectiva es agregar una línea como esta al final de su script:
Read-Host -Indicador «Presione Enter para salir»
El efecto está garantizado y funciona en PS-ISE. Sin embargo, tenga cuidado de que sólo acepte la Introducir clave.
4. Ejecute un script de PowerShell localmente para ejecutarlo en una computadora remota
También puede intentar crear un archivo open.ps1 como el que está viendo aquí:
powershell.exe -noexit c:control remoto.ps1
Esto llama al control remoto.ps1:
Enter-PSSession -ComputerName YourExchangeServer -Credential Get-Credential
5. Utilice el cmdlet Inicio-Suspensión
Cuando se enfrenta al problema de buscar una manera de evitar que PowerShell se cierre después de ejecutar un script, otro cmdlet de PowerShell eficaz pero subestimado es este:
Inicio-Sueño -s 15
Para aquellos de ustedes que no saben, este cmdlet Start-Sleep o el alias de suspensión básicamente suspende la actividad en una secuencia de comandos durante el período de tiempo especificado. Puede usarlo para muchas otras tareas, como hacer una pausa antes de repetir una operación o esperar a que se complete una operación.
Depende de usted decidir si es lo suficientemente bueno para su caso. Solo recuerde usar la tecla de acceso directo del teclado Ctrl+C cuando esté listo para salir de Start-Sleep.
Hay muchos usos para PowerShell cuando tiene muchos procesos que deben ejecutarse bajo ciertas condiciones y no tiene tiempo o paciencia para esperar a que termine cada proceso para comenzar el siguiente.
En este caso, tienes que evitar que PowerShell se cierre después de ejecutar un script y has visto que es posible. Puede utilizar cualquiera de los procedimientos descritos anteriormente según sus necesidades y conveniencia.
Háganos saber cuál funcionó para usted a través del área de comentarios a continuación.
LEA TAMBIÉN: