Estoy tratando de crear un par de archivos que puedo guardar en mi escritorio local para iniciar sesiones de PowerShell.
Windows Server 2008 y Windows Server 2012 son instalaciones de Server Core.
Actualmente, puedo abrir Powershell y escribir:
Enter-PSSession -computername Win2012SrvCore -credential administrator
Con esto, puedo conectar y ejecutar comandos y todo es genial.
Lo que he intentado hacer es:
Crear archivo llamado Win2012SrvCore1.ps1
con lo siguiente:
$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd
$session = new-pssession -computername Win2012SrvCore -credential $cred
Crear archivo llamado Win2012SrvCore2.ps1
con lo siguiente:
PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator
Cada ps1
archivo se iniciará y cerrará rápidamente con un texto rojo que no puedo leer.
Intenté agregar PAUSE
a cada script pero eso no parece detener el cierre de la ventana.
Lo que me gustaría hacer es crear scripts en los que pueda hacer doble clic y abrirlos en el indicador de PowerShell, similar a una sesión RDP guardada.
He configurado archivos ps1 para ejecutar:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Cualquier ayuda sería muy apreciada.
fuente
Respuestas:
Agrega una línea más:
Import-PSSession $session
Luego guarde el archivo .PS1 y cree un acceso directo a él como
powershell.exe -noexit -File "C:\PS.ps1"
.fuente
agregar `-noexit '
PowerShell.exe -noexit -Command Enter-PSSession -computername Win2012SrvCore -credential administrator
fuente
Intente guardar sus comandos como un archivo de script y luego haga que sus accesos directos usen la línea de comandos:
powershell.exe -noExit <filename.ps1>
Esto hará que sus accesos directos ejecuten el archivo de secuencia de comandos especificado y no salgan de PowerShell al final de la ejecución de las secuencias de comandos, por lo que puede continuar usando la ventana una vez establecida la sesión.
Para que esto funcione, debe asegurarse de que la política de ejecución de PowerShell no esté restringida, de lo contrario no se pueden ejecutar archivos de script
Para verificar la política de ejecución actual que puede usar
Get-ExecutionPolicy
y puede usarSet-ExecutionPolicy
para cambiar la política de manera permanente o agregar el-ExecutionPolcy
parámetro a la línea de comandos de powershell para cambiarlo en una sola sesión.Se puede encontrar más información sobre las políticas de ejecución y su impacto utilizando el
help about_Execution_Policies
comando.fuente