Remote PowerShell
PowerShell n’est pas qu’un Shell local aux machines Windows. Il intègre nativement la capacité d’interagir avec des machines distantes et de faire exécuter à peu près n’importe quelle commande.
Par contre, l’accès distant avec PowerShell s’appuie sur de nombreux protocoles de communication et frameworks présents dans les environnements de Microsoft.
Cette variété de protocoles peut rendre complexe la compréhension du remoting avec PowerShell. Les protocoles disponibles pour agir à distance sur une machine avec PowerShell sont les suivants :
-
WMI : Windows Management Instrumentation avec DCOM et RPC sous le capot.
-
WinRM : Windows Remote Management qui s’appuie sur WSMan (Web Services-Management).
-
Sur les versions Linux (Core 7), PowerShell supporte même le SSH.
Les accès distants en PowerShell existaient dès la version 2 du langage de Microsoft. Entre 2009 et aujourd’hui, de nombreuses évolutions du langage et du Framework .NET sont passées par là et certains comportements ou fonctionnalités peuvent donc varier en fonction de la version de PowerShell. En revanche, la plupart des commandes récentes s’appuient sur le mécanisme de "sessions" qui va être présenté ci-après.
1. PSSessions, WS-Management et WinRM PSSessions
a. Sessions
Les PSSessions sont le mécanisme privilégié...