Inicie una sesión remota de PowerShell utilizando el archivo ps1 guardado

Inicie una sesión remota de PowerShell utilizando el archivo ps1 guardado

Estoy intentando 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

Usando esto, puedo conectarme y ejecutar comandos y todo es genial.

Lo que he intentado hacer es:

Cree un archivo llamado Win2012SrvCore1.ps1con 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

Cree un archivo llamado Win2012SrvCore2.ps1con lo siguiente:

PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator

Cada ps1archivo se iniciará y cerrará rápidamente con un texto en rojo que no puedo leer.

Intenté agregar PAUSEa cada secuencia de comandos, pero eso no parece impedir que la ventana se cierre.

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.

Respuesta1

$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

Añade una línea más:

Import-PSSession $session

Luego guarde el archivo .PS1 y cree un acceso directo como powershell.exe -noexit -File "C:\PS.ps1".

Respuesta2

agregue `-noexit'

PowerShell.exe -noexit -Command Enter-PSSession -computername Win2012SrvCore -credential administrator

Respuesta3

Intente guardar sus comandos como un archivo de secuencia de comandos 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 podrá continuar usando la ventana después de que se establezca 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 podrán ejecutar archivos de script.

Para verificar la política de ejecución actual, puede usar Get-ExecutionPolicyy puede usar Set-ExecutionPolicypara cambiar la política de forma permanente o agregar el -ExecutionPolcyparámetro a la línea de comandos de PowerShell para cambiarlo para una sola sesión.

Puede encontrar más información sobre las políticas de ejecución y su impacto utilizando el help about_Execution_Policiescomando.

información relacionada