Gerenciar sistemas remotos pode muitas vezes parecer como navegar em um labirinto. Sessões interativas podem ser a resposta se você ficar preso tentando solucionar um problema de servidor. Com a abordagem certa, você pode conectar-se a máquinas remotas sem esforço, interagir com elas em tempo real e até mesmo 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 em uma brisa!
Abrindo uma Sessão Interativa
Às vezes, você pode precisar 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, permitindo que você se conecte a uma máquina remota 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. Utilize 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á em execução 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 sai.
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
Embora sessões interativas sejam ú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, em seguida, 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 as sessões abertas:
exit Get-PSSession
O comando New-PSSession
mantém a sessão disponível que 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
Trabalhos em andamento exigem 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; desconectar preserva o estado da sessão, permitindo que você reconecte mais tarde.
PowerShell permite que você se desconecte de uma sessão remota enquanto a mantém ativa e reconecte depois.
Para 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 das tarefas na mesma sessão.
Por fim, limpe e remova todas as sessões:
Get-PSSession | Remove-PSSession
💡 Dica: 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 ótimo.
Conclusão
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 possibilitam um controle contínuo sobre os sistemas remotos.
Domine o gerenciamento de sessões e equipe-se com habilidades para lidar com diversas tarefas administrativas de forma eficiente!
Source:
https://adamtheautomator.com/powershell-interactive-sessions/