Iniciar sessão remota do PowerShell usando o arquivo ps1 salvo

15

Estou tentando criar alguns arquivos que posso salvar na área de trabalho local para iniciar as sessões do PowerShell.

O Windows Server 2008 e o Windows Server 2012 são instalações do Server Core.

Atualmente, posso abrir o Powershell e digitar:

Enter-PSSession -computername Win2012SrvCore -credential administrator

Usando isso, eu posso conectar e executar comandos e tudo está ótimo.

O que eu tentei fazer é:

Crie um arquivo chamado Win2012SrvCore1.ps1com o seguinte:

$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

Crie um arquivo chamado Win2012SrvCore2.ps1com o seguinte:

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

Cada ps1arquivo será iniciado e fechado rapidamente com algum texto em vermelho que não consigo ler.

Eu tentei adicionar PAUSEa cada script, mas isso não parece impedir a janela de fechar.

O que eu gostaria de fazer é criar scripts nos quais eu possa clicar duas vezes e abrir no prompt do PowerShell, semelhante a uma sessão RDP salva.

Eu configurei os arquivos ps1 para executar:

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Qualquer ajuda seria muito apreciada.

Anthony Fornito
fonte
O que acontece se você digitar manualmente isso no ISE linha por linha, comando por comando? Você ainda recebe um erro?
Colyn1337
Eu abriria o Powershell ISE (Integrated Scripting Environemt) e executaria o script. Isso exibirá a saída e permitirá que você continue a solução de problemas.
BRNDR

Respostas:

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

Adicione mais uma linha:

Import-PSSession $session

Em seguida, salve o arquivo .PS1 e crie um atalho para ele como powershell.exe -noexit -File "C:\PS.ps1".

O limpador
fonte
12

adicione `-noexit '

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

Craig
fonte
9

Tente salvar seus comandos como um arquivo de script e faça com que seus atalhos usem a linha de comando:

powershell.exe -noExit <filename.ps1>

Isso fará com que seus atalhos executem o arquivo de script especificado e não saia do PowerShell no final da execução dos scripts, para que você possa continuar usando a janela após o estabelecimento da sessão.

Para que isso funcione, você precisa garantir que a política de execução do PowerShell não seja Restrita, caso contrário, nenhum arquivo de script poderá ser executado

Para verificar a política de execução atual, você pode usar Get-ExecutionPolicye Set-ExecutionPolicyalterar a política permanentemente ou adicionar o -ExecutionPolcyparâmetro à linha de comando do PowerShell para alterá-la em uma única sessão.

Mais informações sobre políticas de execução e seu impacto podem ser encontradas usando o help about_Execution_Policiescomando

Crippledsmurf
fonte