in

Comment exécuter des commandes PowerShell sur des ordinateurs distants

PowerShell Remoting vous permet d’exécuter des commandes PowerShell ou d’accéder à des sessions PowerShell complètes sur des systèmes Windows distants. Il est similaire à SSH pour accéder aux terminaux distants sur d’autres systèmes d’exploitation.

PowerShell est verrouillé par défaut, vous devrez donc activer PowerShell Remoting avant de l’utiliser. Ce processus de configuration est un peu plus complexe si vous utilisez un groupe de travail au lieu d’un domaine, par exemple sur un réseau domestique, mais nous vous guiderons à travers.

Activer la communication à distance PowerShell sur le PC auquel vous souhaitez accéder à distance

Votre première étape consiste à activer PowerShell Remoting sur le PC auquel vous souhaitez établir des connexions à distance. Sur ce PC, vous devrez ouvrir PowerShell avec des privilèges administratifs.

Dans Windows 10, appuyez sur Windows + X, puis choisissez PowerShell (Admin) dans le menu Power User.

Sous Windows 7 ou 8, appuyez sur Démarrer, puis tapez «PowerShell». Cliquez avec le bouton droit sur le résultat et choisissez « Exécuter en tant qu’administrateur ».

Dans la fenêtre PowerShell, tapez l’applet de commande suivante (nom de PowerShell pour une commande), puis appuyez sur Entrée:

Enable-PSRemoting -Force

Cette commande démarre le service WinRM, le configure pour qu’il démarre automatiquement avec votre système et crée une règle de pare-feu qui autorise les connexions entrantes. le -Force une partie de l’applet de commande indique à PowerShell d’effectuer ces actions sans vous demander chaque étape.

Si vos PC font partie d’un domaine, c’est tout ce que vous avez à faire. Vous pouvez passer au test de votre connexion. Si vos ordinateurs font partie d’un groupe de travail – ce qu’ils sont probablement sur un réseau domestique ou de petite entreprise – vous avez un peu plus de travail de configuration à faire.

Remarque: la réussite de la configuration de la communication à distance dans un environnement de domaine dépend entièrement de la configuration de votre réseau. La communication à distance peut être désactivée, voire activée, automatiquement par la stratégie de groupe configurée par un administrateur. Vous pouvez également ne pas disposer des autorisations nécessaires pour exécuter PowerShell en tant qu’administrateur. Comme toujours, vérifiez auprès de vos administrateurs avant d’essayer quelque chose comme ça. Ils pourraient avoir de bonnes raisons de ne pas autoriser la pratique, ou ils pourraient être disposés à l’installer pour vous.

Configurer votre groupe de travail

Si vos ordinateurs ne sont pas sur un domaine, vous devez effectuer quelques étapes supplémentaires pour configurer les choses. Vous devriez déjà avoir activé la communication à distance sur le PC auquel vous souhaitez vous connecter, comme nous l’avons décrit dans la section précédente.

Remarque: pour que PowerShell Remoting fonctionne dans un environnement de groupe de travail, vous devez configurer votre réseau en tant que réseau privé et non public. Pour en savoir plus sur la différence – et comment passer à un réseau privé si vous avez déjà configuré un réseau public – consultez notre guide sur les réseaux privés et publics.

Ensuite, vous devez configurer le paramètre TrustedHosts sur le PC auquel vous souhaitez connecter le PC (ou les PC) à partir duquel vous souhaitez vous connecter, afin que les ordinateurs se fassent confiance. Vous pouvez le faire de deux manières.

Si vous êtes sur un réseau domestique sur lequel vous souhaitez continuer et faire confiance à n’importe quel PC pour se connecter à distance, vous pouvez taper l’applet de commande suivante dans PowerShell (encore une fois, vous devrez l’exécuter en tant qu’administrateur).

Set-Item wsman:localhostclienttrustedhosts *

L’astérisque est un symbole générique pour tous les PC. Si à la place vous souhaitez restreindre les ordinateurs qui peuvent se connecter, vous pouvez remplacer l’astérisque par une liste d’adresses IP ou de noms d’ordinateurs séparés par des virgules pour les PC approuvés.

Après avoir exécuté cette commande, vous devrez redémarrer le service WinRM pour que vos nouveaux paramètres prennent effet. Tapez l’applet de commande suivante, puis appuyez sur Entrée:

Restart-Service WinRM

Et n’oubliez pas que vous devrez exécuter ces deux applets de commande sur le PC auquel vous souhaitez vous connecter, ainsi que sur tous les PC à partir desquels vous souhaitez vous connecter.

Tester la connexion

Maintenant que vos PC sont configurés pour PowerShell Remoting, il est temps de tester la connexion. Sur le PC à partir duquel vous souhaitez accéder au système distant, tapez l’applet de commande suivante dans PowerShell (en remplaçant «ORDINATEUR» par le nom ou l’adresse IP du PC distant), puis appuyez sur Entrée:

Test-WsMan COMPUTER

Cette commande simple teste si le service WinRM est en cours d’exécution sur le PC distant. S’il réussit, vous verrez des informations sur le service WinRM de l’ordinateur distant dans la fenêtre, ce qui signifie que WinRM est activé et que votre PC peut communiquer. Si la commande échoue, vous verrez un message d’erreur à la place.

Exécuter une seule commande à distance

Pour exécuter une commande sur le système distant, utilisez le Invoke-Command cmdlet à l’aide de la syntaxe suivante:

Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME

«ORDINATEUR» représente le nom ou l’adresse IP du PC distant. «COMMAND» est la commande que vous souhaitez exécuter. «USERNAME» est le nom d’utilisateur sous lequel vous souhaitez exécuter la commande sur l’ordinateur distant. Vous serez invité à entrer un mot de passe pour le nom d’utilisateur.

Voici un exemple. Je souhaite afficher le contenu du répertoire C: sur un ordinateur distant avec l’adresse IP 10.0.0.22. Je veux utiliser le nom d’utilisateur «wjgle», donc j’utiliserais la commande suivante:

Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C: } -credential wjgle

Démarrer une session à distance

Si vous souhaitez exécuter plusieurs applets de commande sur le PC distant, au lieu de taper à plusieurs reprises l’applet de commande Invoke-Command et l’adresse IP distante, vous pouvez démarrer une session à distance à la place. Tapez simplement l’applet de commande suivante, puis appuyez sur Entrée:

Enter-PSSession -ComputerName COMPUTER -Credential USER

Encore une fois, remplacez «ORDINATEUR» par le nom ou l’adresse IP du PC distant et remplacez «UTILISATEUR» par le nom du compte utilisateur que vous souhaitez appeler.

Votre invite change pour indiquer l’ordinateur distant auquel vous êtes connecté et vous pouvez exécuter n’importe quel nombre d’applets de commande PowerShell directement sur le système distant.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Qu'est-ce que «Améliorer la précision du pointeur» dans Windows?

Qu’est-ce que «Améliorer la précision du pointeur» dans Windows?

Comment créer des animations avec vos lampes Philips Hue

Comment créer des animations avec vos lampes Philips Hue