Gerenciar sistemas remotos pode frequentemente parecer como navegar em um labirinto. Sessões interativas podem ser a solução se você ficar preso tentando resolver um problema de servidor. Com a abordagem certa, você pode se conectar a máquinas remotas sem esforço, interagir com elas em tempo real e até manter conexões para trabalhos de longo prazo.
Neste guia, você aprenderá como desbloquear todo o potencial das sessões PowerShell para passar da frustração à maestria.
Agilize seu gerenciamento remoto e torne essas tarefas tediosas uma brisa!
Abertura de uma Sessão Interativa
Às vezes, pode ser necessário solucionar problemas ou interagir com um computador remoto em tempo real. Por exemplo, para diagnosticar um problema de configuração ou verificar serviços. Ferramentas de gerenciamento remoto geralmente permitem conexões, mas alternar entre sistemas pode ser complicado.
Sessões interativas no PowerShell oferecem uma solução ao permitir que você se conecte a uma máquina remota sem dificuldades e execute comandos como se estivesse trabalhando em um console local.
Antes de iniciar uma sessão interativa, certifique-se de que o sistema remoto tenha o Windows Remote Management (WinRM) habilitado e configurado corretamente. Use o seguinte comando para habilitar o WinRM no sistema remoto: Enable-PSRemoting -Force
Para iniciar uma sessão interativa, use o comando Enter-PSSession
:
Enter-PSSession -ComputerName SRV2
Note que o prompt agora inclui o nome do computador remoto, indicando uma conexão ativa.
Confirme que a sessão está sendo executada na máquina remota:
hostname
Após concluir suas tarefas, você pode sair da sessão:
exit
Ao usar Enter-PSSession
, a sessão termina assim que você a encerra.
Verifique a sessão com o seguinte:
Get-PSSession
Nenhuma sessão deve ser listada, pois elas não existem mais.
Criando e Gerenciando Sessões Persistentes
Enquanto sessões interativas são úteis para tarefas em tempo real, elas desaparecem uma vez fechadas, o que limita a flexibilidade para trabalhos em andamento. Imagine precisar automatizar alguns comandos, desconectar temporariamente e depois reconectar para continuar de onde parou.
Não se preocupe. Sessões persistentes preenchem essa lacuna mantendo uma conexão entre sua máquina local e o computador remoto, mesmo quando você sai do console ou reinicia.
Para combinar casos de uso não interativos e interativos, crie uma sessão persistente:
$session = New-PSSession -ComputerName SRV2
Uma vez criada, interaja com a nova sessão usando o parâmetro Session
:
Enter-PSSession -Session $session
Saia da sessão e verifique novamente se há sessões abertas:
exit Get-PSSession
O comando New-PSSession
mantém disponível a sessão que ele criou.
Você também pode usar a sessão de forma não interativa:
Invoke-Command -Session $session -ScriptBlock {'Yay! I am in the remote computer!'}
Desconectando e Reconectando Sessões
O trabalho em andamento requer que você se desconecte temporariamente de uma sessão sem encerrá-la completamente em algum momento. Um exemplo é quando você precisa reiniciar seu console local, a desconexão preserva o estado da sessão, permitindo que você se reconecte posteriormente.
O PowerShell permite que você se desconecte de uma sessão remota mantendo-a ativa e se reconecte posteriormente.
Para se desconectar da sessão:
Disconnect-PSSession -Session $session
A sessão agora aparece Desconectada.
Você pode reconectar à sessão mesmo após reiniciar o console do PowerShell:
Connect-PSSession -ComputerName SRV2
Esse processo permite a retomada de tarefas na mesma sessão.
Por fim, limpe e remova todas as sessões:
Get-PSSession | Remove-PSSession
💡 Dica: As sessões persistentes podem ser poderosas, mas deixá-las em execução pode consumir recursos do sistema na máquina local ou remota. Sempre limpe as sessões quando não forem mais necessárias para manter o desempenho ideal.
Conclusão
As sessões interativas e persistentes do PowerShell oferecem ferramentas poderosas para o gerenciamento de sistemas remotos, proporcionando flexibilidade e eficiência.
Seja para solucionar problemas em tempo real, automatizar comandos ou preservar o trabalho através de reinicializações, essas técnicas permitem um controle perfeito sobre os sistemas remotos.
Domine o gerenciamento de sessões e equipe-se com habilidades para lidar eficientemente com várias tarefas administrativas!
Source:
https://adamtheautomator.com/powershell-interactive-sessions/