La gestion des systèmes à distance peut souvent donner l’impression de naviguer dans un labyrinthe. Les sessions interactives peuvent être la réponse si vous vous retrouvez bloqué en essayant de résoudre un problème de serveur. Avec la bonne approche, vous pouvez vous connecter aux machines à distance sans effort, interagir avec elles en temps réel et même maintenir des connexions pour un travail à plus long terme.
Dans ce guide, vous apprendrez comment exploiter pleinement le potentiel des sessions PowerShell pour passer de la frustration à la maîtrise.
Optimisez votre gestion à distance et transformez ces tâches fastidieuses en un jeu d’enfant !
Ouverture d’une session interactive
Parfois, vous pouvez avoir besoin de diagnostiquer ou d’interagir avec un ordinateur à distance en temps réel. Par exemple, pour diagnostiquer un problème de configuration ou vérifier des services. Les outils de gestion à distance permettent souvent les connexions, mais passer d’un système à l’autre peut être fastidieux.
Les sessions interactives dans PowerShell offrent une solution en vous permettant de vous connecter de manière transparente à une machine distante et d’exécuter des commandes comme si vous travailliez dans une console locale.
Avant de commencer une session interactive, assurez-vous que le système distant a Windows Remote Management (WinRM) activé et correctement configuré. Utilisez la commande suivante pour activer WinRM sur le système distant : Enable-PSRemoting -Force
Pour commencer une session interactive, utilisez la commande Enter-PSSession
:
Enter-PSSession -ComputerName SRV2
Remarquez que l’invite inclut désormais le nom de l’ordinateur distant, indiquant une connexion active.
Confirmez que la session est en cours d’exécution sur la machine distante :
hostname
Après avoir accompli vos tâches, vous pouvez quitter la session :
exit
Lorsque vous utilisez Enter-PSSession
, la session se termine une fois que vous en sortez.
Vérifiez la session avec ce qui suit :
Get-PSSession
Aucune session ne devrait être répertoriée, car elles n’existent plus.
Création et gestion des sessions persistantes
Bien que les sessions interactives soient utiles pour les tâches en temps réel, elles disparaissent une fois fermées, ce qui limite la flexibilité pour le travail en cours. Imaginez devoir automatiser certaines commandes, vous déconnecter temporairement, puis vous reconnecter pour continuer là où vous vous étiez arrêté.
Ne vous inquiétez pas. Les sessions persistantes comblent cette lacune en maintenant une connexion entre votre machine locale et l’ordinateur distant, même lorsque vous quittez la console ou redémarrez.
Pour combiner des cas d’utilisation non-interactifs et interactifs, créez une session persistante :
$session = New-PSSession -ComputerName SRV2
Une fois créée, interagissez avec la nouvelle session en utilisant le paramètre Session
:
Enter-PSSession -Session $session
Quittez la session et vérifiez à nouveau les sessions ouvertes :
exit Get-PSSession
La commande New-PSSession
garde la session disponible qu’elle a créée.
Vous pouvez également utiliser la session de manière non interactive :
Invoke-Command -Session $session -ScriptBlock {'Yay! I am in the remote computer!'}
Déconnexion et reconnexion aux sessions
Le travail en cours nécessite que vous vous déconnectiez temporairement d’une session sans la terminer complètement à un moment donné. Un exemple est lorsque vous devez redémarrer votre console locale, se déconnecter préserve l’état de la session, vous permettant de vous reconnecter plus tard.
PowerShell vous permet de vous déconnecter d’une session distante tout en la maintenant active et de vous reconnecter plus tard.
Pour vous déconnecter de la session :
Disconnect-PSSession -Session $session
La session apparaît maintenant Déconnectée.
Vous pouvez vous reconnecter à la session même après avoir redémarré la console PowerShell :
Connect-PSSession -ComputerName SRV2
Ce processus permet de reprendre les tâches dans la même session.
Enfin, nettoyez et supprimez toutes les sessions :
Get-PSSession | Remove-PSSession
💡 Conseil : Les sessions persistantes peuvent être puissantes, mais les laisser s’exécuter peut consommer des ressources système sur la machine locale ou distante. Nettoyez toujours les sessions lorsqu’elles ne sont plus nécessaires pour maintenir des performances optimales.
Conclusion
Les sessions PowerShell interactives et persistantes offrent des outils puissants pour la gestion des systèmes à distance, offrant flexibilité et efficacité.
Que vous résolviez des problèmes en temps réel, automatisiez des commandes ou conserviez le travail à travers les redémarrages, ces techniques permettent un contrôle transparent sur les systèmes distants.
Maîtrisez la gestion des sessions et équipez-vous de compétences pour gérer efficacement diverses tâches administratives !
Source:
https://adamtheautomator.com/powershell-interactive-sessions/