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

15

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.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

Crear 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 rojo que no puedo leer.

Intenté agregar PAUSEa 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.

Anthony Fornito
fuente
¿Qué sucede si escribe esto manualmente en el ISE línea por línea, comando por comando? ¿Todavía recibes un error?
Colyn1337
Abriría Powershell ISE (Integrated Scripting Environemt) y ejecutaría el script. Esto mostrará el resultado y le permitirá continuar con la solución de problemas.
BRNDR

Respuestas:

10
$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

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".

El limpiador
fuente
12

agregar `-noexit '

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

Craig
fuente
9

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-ExecutionPolicyy puede usar Set-ExecutionPolicypara cambiar la política de manera permanente o agregar el -ExecutionPolcypará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_Policiescomando.

Pitufo lisiado
fuente