RUBRIQUE about_Remote DESCRIPTION COURTE Décrit comment exécuter des commandes distantes dans Windows PowerShell. DESCRIPTION LONGUE Vous pouvez exécuter des commandes distantes sur un ordinateur unique ou sur plusieurs ordinateurs à l'aide d'une connexion temporaire ou permanente. Vous pouvez également démarrer une session interactive avec un ordinateur distant unique. Cette rubrique fournit une série d'exemples pour vous montrer comment exécuter différents types de commandes distantes. Après avoir essayé ces commandes de base, lisez les rubriques d'aide qui décrivent chaque applet de commande utilisée dans ces commandes. Les rubriques fournissent les détails et expliquent comment vous pouvez modifier les commandes pour répondre à vos besoins. Remarque : pour utiliser la communication à distance Windows PowerShell, les ordinateurs local et distant doivent être configurés pour cette fonction. Pour plus d'informations, consultez about_Remote_Requirements. COMMENT DÉMARRER UNE SESSION INTERACTIVE (ENTER-PSSESSION) La façon la plus simple d'exécuter des commandes distantes consiste à démarrer une session interactive avec un ordinateur distant. Lorsque la session démarre, les commandes que vous tapez s'exécutent sur l'ordinateur distant comme si vous les y aviez tapées directement. Vous ne pouvez vous connecter qu'à un seul ordinateur dans chaque session interactive. Pour démarrer une session interactive, utilisez l'applet de commande Enter-PSSession. La commande suivante démarre une session interactive avec l'ordinateur Server01 : enter-pssession server01 L'invite de commandes change pour indiquer que vous êtes connecté à l'ordinateur Server01. Server01\PS> Vous pouvez maintenant taper des commandes sur l'ordinateur Server01. Pour mettre fin à la session interactive, tapez : exit-pssession Pour plus d'informations, consultez Enter-PSSession. COMMENT UTILISER DES APPLETS DE COMMANDE AVEC UN PARAMÈTRE COMPUTERNAME POUR OBTENIR DES DONNÉES DISTANTES Plusieurs applets de commande ont un paramètre ComputerName qui vous permet d'obtenir des objets d'ordinateurs distants. Étant donné que ces applets de commande n'utilisent pas la communication à distance Windows PowerShell basée sur la Gestion des services Web pour communiquer, vous pouvez utiliser le paramètre ComputerName de ces applets de commande sur tout ordinateur qui exécute Windows PowerShell. Les ordinateurs n'ont pas à être configurés pour la communication à distance Windows PowerShell ni à répondre à la configuration minimale requise pour la communication à distance. Les applets de commande suivantes ont un paramètre ComputerName : Clear-EventLog Limit-EventLog Get-Counter New-EventLog Get-EventLog Remove-EventLog Get-HotFix Restart-Computer Get-Process Show-EventLog Get-Service Show-Service Get-WinEvent Stop-Computer Get-WmiObject Write-EventLog Par exemple, la commande suivante obtient les services sur l'ordinateur distant Server01 : get-service -computername server01 En général, les applets de commande qui prennent en charge la communication à distance sans configuration spéciale ont un paramètre ComputerName et pas de paramètre Session. Pour rechercher ces applets de commande dans votre session, tapez : get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"} COMMENT EXÉCUTER UNE COMMANDE DISTANTE Pour exécuter d'autres commandes sur les ordinateurs distants, utilisez l'applet de commande Invoke-Command. Pour exécuter une seule commande ou quelques commandes non liées, utilisez le paramètre ComputerName de l'applet de commande Invoke-Command pour indiquer les ordinateurs distants. Utilisez le paramètre ScriptBlock pour spécifier la commande. Par exemple, la commande suivante exécute une commande Get-Culture sur l'ordinateur Server01. invoke-command -computername Server01 -scriptblock {get-culture} Le paramètre ComputerName est conçu pour le cas où vous exécutez une seule commande ou quelques commandes non liées sur un ou plusieurs ordinateurs. Pour établir une connexion permanente à un ordinateur distant, utilisez le paramètre Session. COMMENT CRÉER UNE CONNEXION PERMANENTE (PSSESSION) Lorsque vous utilisez le paramètre ComputerName de l'applet de commande Invoke-Command, Windows PowerShell établit une connexion seulement pour la commande. Il ferme ensuite la connexion lorsque la commande est terminée. Toutes les variables ou fonctions définies dans la commande sont perdues. Pour créer une connexion permanente à un ordinateur distant, utilisez l'applet de commande New-PSSession. Par exemple, la commande suivante crée des sessions PSSession sur les ordinateurs Server01 et Server02, puis les enregistre dans la variable $s. $s = new-pssession -computername Server01, Server02 COMMENT EXÉCUTER DES COMMANDES DANS UNE SESSION PSSESSION Avec une session PSSession, vous pouvez exécuter une série de commandes distantes qui partagent des données, comme des fonctions, des alias et les valeurs de variables. Pour exécuter des commandes dans une session PSSession, utilisez le paramètre Session de l'applet de commande Invoke-Command. Par exemple, la commande suivante utilise l'applet de commande Invoke-Command pour exécuter une commande Get-Process dans les sessions PSSession sur les ordinateurs Server01 et Server02. La commande enregistre les processus dans une variable $p dans chaque session PSSession. invoke-command -session $s -scriptblock {$p = get-process} Étant donné que la session PSSession utilise une connexion permanente, vous pouvez exécuter une autre commande dans la même session PSSession qui utilise la variable $p. La commande suivante compte le nombre de processus enregistrés dans $p. invoke-command -session $s -scriptblock {$p.count} COMMENT EXÉCUTER UNE COMMANDE DISTANTE SUR PLUSIEURS ORDINATEURS Pour exécuter une commande distante sur plusieurs ordinateurs, tapez tous les noms d'ordinateurs dans la valeur du paramètre ComputerName de l'applet de commande Invoke-Command. Séparez les noms par des virgules. Par exemple, la commande suivante exécute une commande Get-Culture sur trois ordinateurs : invoke-command -computername S1, S2, S3 -scriptblock {get-culture} Vous pouvez également exécuter une commande dans plusieurs sessions PSSession. Les commandes suivantes créent des sessions PSSession sur les ordinateurs Server01, Server02 et Server03, puis exécutent une commande Get-Culture dans chacune d'elles. $s = new-pssession -computername S1, S2, S3 invoke-command -session $s -scriptblock {get-culture} Pour inclure la liste d'ordinateurs de l'ordinateur local, tapez le nom de l'ordinateur local, un point (.) ou " localhost ". invoke-command -computername S1, S2, S3, localhost -scriptblock {get-culture} COMMENT EXÉCUTER UN SCRIPT SUR LES ORDINATEURS DISTANTS Pour exécuter un script local sur des ordinateurs distants, utilisez le paramètre FilePath de l'applet de commande Invoke-Command. Par exemple, la commande suivante exécute le script Sample.ps1 sur les ordinateurs S1 et S2 : invoke-command -computername S1, S2 -filepath C:\Test\Sample.ps1 Les résultats du script sont retournés à l'ordinateur local. Vous n'avez pas besoin de copier des fichiers. COMMENT ARRÊTER UNE COMMANDE DISTANTE Pour interrompre une commande, appuyez sur CTRL+C. La requête d'interruption est passée à l'ordinateur distant où elle met fin à la commande distante. PLUS D'INFORMATIONS -- Pour plus d'informations sur la configuration requise pour la communication à distance, consultez about_Remote_Requirements. -- Pour obtenir de l'aide sur la mise en forme de la sortie distante, consultez about_Remote_Output. -- Pour plus d'informations sur le fonctionnement de la communication à distance, la gestion des données distantes, les configurations spéciales, les problèmes de sécurité et d'autres questions fréquentes, consultez about_Remote_FAQ. -- Pour obtenir de l'aide sur la résolution d'erreurs de communication à distance, consultez about_Remote_Troubleshooting. -- Pour plus d'informations sur les sessions PSSession et les connexions permanentes, consultez about_PSSessions. -- Pour plus d'informations sur les tâches en arrière-plan Windows PowerShell, consultez about_Jobs. MOTS CLÉS about_Remoting VOIR AUSSI about_PSSessions about_Remote_Requirements about_Remote_FAQ about_Remote_TroubleShooting Enter-PSSession Invoke-Command New-PSSession