Page d'accueil » comment » Comment exécuter des commandes PowerShell sur des ordinateurs distants

    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 à des terminaux distants sur d'autres systèmes d'exploitation..

    PowerShell est verrouillé par défaut. Vous devez donc activer PowerShell Remoting avant de l'utiliser. Ce processus d'installation 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 PowerShell Remoting 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 devez ouvrir PowerShell avec des privilèges d’administrateur..

    Sous 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 de la souris 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 permettant les connexions entrantes. le -Obliger une partie de la cmdlet indique à PowerShell d'effectuer ces actions sans vous demander d'indiquer chaque étape.

    Si vos PC font partie d’un domaine, c’est tout ce que vous devez faire. Vous pouvez ignorer pour tester votre connexion. Si vos ordinateurs font partie d'un groupe de travail (qu'ils sont probablement sur un réseau domestique ou de petite entreprise), vous avez un peu plus de travail d'installation à faire..

    Remarque: la réussite de la configuration de l'accès distant dans un environnement de domaine dépend entièrement de la configuration de votre réseau. La communication à distance peut être désactivée ou même activée automatiquement par la stratégie de groupe configurée par un administrateur. Vous pourriez également ne pas avoir les autorisations nécessaires pour exécuter PowerShell en tant qu'administrateur. Comme toujours, vérifiez auprès de vos administrateurs avant d'essayer quoi que ce soit de ce genre. Ils peuvent avoir de bonnes raisons de ne pas autoriser la pratique ou être disposés à l’organiser pour vous..

    Configurez votre groupe de travail

    Si vos ordinateurs ne font pas partie d'un domaine, vous devez effectuer quelques étapes supplémentaires pour configurer les éléments. Vous devriez déjà avoir activé la communication à distance sur le PC auquel vous souhaitez vous connecter, comme 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 sur la manière de passer à un réseau privé si vous avez déjà un réseau public configuré, 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 vous connecter. et le ou les PC à partir desquels vous souhaitez vous connecter, afin que les ordinateurs se fassent mutuellement confiance. Vous pouvez le faire de deux manières.

    Si vous êtes sur un réseau domestique sur lequel vous voulez aller de l'avant et confiez la connexion à distance à un PC, vous pouvez taper la cmdlet suivante dans PowerShell (encore une fois, vous devrez l'exécuter en tant qu'administrateur)..

    Set-Item wsman: \ localhost \ client \ trustedhosts *

    L'astérisque est un symbole générique pour tous les PC. Si, à la place, vous souhaitez limiter les ordinateurs pouvant 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 ordinateurs 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:

    Service de redémarrage WinRM

    Et rappelez-vous, vous devez exécuter ces deux cmdlets 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 ordinateurs sont configurés pour PowerShell Remoting, il est temps de tester la connexion. Sur le PC duquel vous souhaitez accéder au système distant, tapez la cmdlet suivante dans PowerShell (en remplaçant «ORDINATEUR» par le nom ou l'adresse IP du PC distant), puis appuyez sur Entrée:

    Test-WsMan ORDINATEUR

    Cette commande simple teste si le service WinRM est en cours d'exécution sur le PC distant. Si l'opération aboutit, 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, un message d'erreur apparaît à la place..

    Exécuter une seule commande à distance

    Pour exécuter une commande sur le système distant, utilisez la commande Invoke-Command cmdlet utilisant 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 voulez exécuter. “USERNAME” est le nom d'utilisateur avec lequel vous voulez exécuter la commande en tant que 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 doté de 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 également démarrer une session à distance. 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 par «UTILISATEUR» par le nom du compte d'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 de cmdlets PowerShell directement sur le système distant..