Optimisez l’administration à distance avec PowerShell sur plusieurs machines : guide complet

Présentation
L’administration à distance est une pratique courante et à encourager pour améliorer l’efficacité des administrateurs système et réseau. PowerShell offre plusieurs options pour permettre à l’administrateur d’exécuter des commandes ou des scripts à distance sur un ensemble de machines. Il peut s’agir de postes de travail ou de serveurs, selon les besoins.
Parmi les options envisageables, il y a le cmdlet PowerShell nommé Invoke-Command. Il permet d’exécuter une commande ou un script sur un ou plusieurs ordinateurs distants, via les protocoles WinRM ou SSH, en fonction du contexte.
Prérequis pour l’exécution à distance
Avant d’utiliser Invoke-Command, il est essentiel de s’assurer que la configuration de l’environnement est correcte. Ici, nous utiliserons la configuration la plus simple pour éviter d’alourdir l’article avec la configuration de WinRM, à savoir : exécuter des commandes entre plusieurs machines intégrées à un domaine Active Directory, ce qui facilite l’authentification et l’approbation mutuelle des hôtes.
WinRM est associé à la fonctionnalité de Gestion à distance de Windows. L’état par défaut est le suivant :
Sur Windows Server, la Gestion à distance est activée par défaut, ce qui signifie que WinRM est en écoute. Sur Windows 10 et Windows 11, la Gestion à distance est désactivée par défaut, il n’est donc pas possible de se connecter à un poste de travail à distance sans effectuer de configuration.
Pour activer WinRM (Windows Remote Management) sur une machine, il suffit d’exécuter cette commande : Enable-PSRemoting. Cette commande active WinRM, ce qui va démarrer le service associé, mettre en écoute la machine sur le port 5985/TCP (HTTP) et configurer le pare-feu pour permettre les connexions distantes.
Utilisation de Invoke-Command
Une fois l’environnement configuré, Invoke-Command peut être utilisé pour exécuter des commandes à distance. Dans la suite de cet article, nous étudierons différents exemples d’utilisation.
Exécuter un bloc de code contenant une ou plusieurs commandes via le paramètre -ScriptBlock. Exécuter un script PowerShell (.ps1) via le paramètre -FilePath.
Conclusion
Invoke-Command est une commande indispensable pour administrer des machines à distance via PowerShell, que ce soit pour exécuter une seule commande ou un script complet. Grâce à ce mécanisme, il est possible d’optimiser la gestion de son infrastructure et de gagner en efficacité.
Source : www.it-connect.fr