about_Remote

Mis à jour: mai 2014

S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

RUBRIQUE

about_Remote

DESCRIPTION COURTE

Décrit comment exécuter des commandes distantes dans Windows PowerShell.

DESCRIPTION DÉTAILLÉE

Vous pouvez exécuter des commandes distantes sur un seul ordinateur ou sur plusieurs ordinateurs à l'aide d'une connexion temporaire ou permanente. Vous pouvez aussi démarrer une session interactive avec un seul ordinateur distant.

Cette rubrique fournit une série d'exemples illustrant comment exécuter différents types de commandes distantes. Une fois que vous avez essayé les commandes de base, lisez les rubriques d'aide qui décrivent chaque applet de commande utilisée dans ces mêmes commandes. Les rubriques fournissent les informations détaillées et expliquent comment vous pouvez modifier les commandes pour répondre à vos besoins.

Notes

Pour utiliser la communication à distance Windows PowerShell®, l'ordinateur distant et l'ordinateur local doivent être configurés en conséquence. Pour plus d'informations, consultez about_Remote_Requirements.

COMMENT DÉMARRER UNE SESSION INTERACTIVE (ENTER-PSSESSION)

Pour exécuter des commandes distantes, le plus simple consiste à démarrer une session interactive avec un ordinateur distant.

Lorsque la session a démarré, les commandes que vous tapez s'exécutent sur l'ordinateur distant, comme si vous les tapiez directement sur ce dernier. Vous pouvez vous connecter à 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 sur l'ordinateur Server01 :

        Enter-PSSession Server01

L'invite de commandes est modifiée pour indiquer que vous êtes connecté à l'ordinateur Server01.

        Server01\PS>

À présent, vous pouvez taper les commandes sur l'ordinateur Server01.

Pour terminer la session interactive, tapez :

        Exit-PSSession

Pour plus d'informations, consultez Enter-PSSession.

COMMENT UTILISER LES APPLETS DE COMMANDE AYANT UN PARAMÈTRE COMPUTERNAME POUR OBTENIR LES DONNÉES À DISTANCE

Plusieurs applets de commande ont un paramètre ComputerName qui vous permet d'obtenir des objets à partir d'ordinateurs distants.

Comme ces applets de commande n'utilisent pas la communication à distance Windows PowerShell basée sur WS-Management, 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 et les ordinateurs n'ont pas à satisfaire à la configuration système 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       Stop-Computer
        Get-WinEvent      Test-Connection
        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 particulière possèdent un paramètre ComputerName. En revanche, elles ne possèdent pas de paramètre Session. Pour trouver 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 des ordinateurs distants, utilisez l'applet de commande Invoke-Command.

Pour exécuter une commande unique ou quelques commandes non liées, utilisez le paramètre ComputerName d'Invoke-Command pour spécifier 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 une situation dans laquelle vous exécutez une commande unique ou plusieurs 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 uniquement pour la commande. Ensuite, il ferme la connexion quand la commande est terminée. Les variables ou les 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 PowerShell sur les ordinateurs Server01 et Server02, puis enregistre les sessions PowerShell dans la variable $s.

        $s = New-PSSession -ComputerName Server01, Server02

COMMENT EXÉCUTER DES COMMANDES DANS UNE SESSION POWERSHELL

Avec une session PowerShell, vous pouvez exécuter une série de commandes distantes qui partagent des données, comme les fonctions, les alias et les valeurs des variables. Pour exécuter des commandes dans une session PowerShell, 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 PowerShell sur les ordinateurs Server01 et Server02. La commande enregistre les processus dans une variable $p dans chaque session PowerShell.

        Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}

Comme la session PowerShell utilise une connexion permanente, vous pouvez exécuter une autre commande dans la même session PowerShell 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 d'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 aussi exécuter une commande dans plusieurs sessions PowerShell. Les commandes suivantes créent des sessions PowerShell sur les ordinateurs Server01, Server02 et Server03, puis exécutent une commande Get-Culture dans chacune des sessions PowerShell.

        $s = New-PSSession -ComputerName S1, S2, S3
        Invoke-Command -Session $s -ScriptBlock {Get-Culture}

Pour inclure la liste de l'ordinateur local des ordinateurs, tapez le nom de l'ordinateur local, tapez un point (.) ou tapez « localhost ».

        Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

COMMENT EXÉCUTER UN SCRIPT SUR DES ORDINATEURS DISTANTS

Pour exécuter un script local sur des ordinateurs distants, utilisez le paramètre FilePath d'Invoke-Command.

Par exemple, la commande suivante exécute le script Sample.ps1 sur les ordinateurs S1 et S2 : insérez le corps de la section ici.

        Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1

Les résultats du script sont retournés à l'ordinateur local. Il est inutile de copier les fichiers.

COMMENT ARRÊTER UNE COMMANDE DISTANTE

Pour interrompre une commande, appuyez sur CTRL+C. La demande d'interruption est transmise à l'ordinateur distant, qui met fin à la commande distante.

POUR PLUS D'INFORMATIONS

-- Pour plus d'informations sur la configuration système requise pour la communication à distance, consultez about_Remote_Requirements.

-- Pour mettre en forme la sortie à distance, consultez about_Remote_Output.

-- Pour plus d'informations sur le fonctionnement de la communication à distance, la gestion des données à distance, les configurations spéciales, les problèmes de sécurité et autres questions fréquemment posées, consultez about_Remote_FAQ.

-- Pour vous aider à résoudre les erreurs de la communication à distance, consultez about_Remote_Troubleshooting.

-- Pour plus d'informations sur les sessions PowerShell et les connexions persistantes, consultez about_PSSessions.

-- Pour plus d'informations sur les travaux en arrière-plan de Windows PowerShell, consultez about_Jobs.

MOTS CLÉS

about_Remoting

VOIR AUSSI

about_PSSessions

about_Remote_Disconnected_Sessions

about_Remote_Requirements

about_Remote_FAQ

about_Remote_TroubleShooting

about_Remote_Variables

Enter-PSSession

Invoke-Command

New-PSSession