Partager via


À propos de Remote

DESCRIPTION COURTE

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

DESCRIPTION DÉTAILLÉE

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

Cette rubrique fournit une série d’exemples pour vous montrer comment exécuter différents types de commande à distance. 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 locaux et distants doivent être configurés pour la communication à distance. Pour plus d'informations, voir about_Remote_Requirements.

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

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

Au démarrage de la session, les commandes que vous tapez s’exécutent sur l’ordinateur distant, comme si vous les aviez tapées directement sur l’ordinateur distant. Vous ne pouvez vous connecter qu’à un seul ordinateur de 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 commande change pour indiquer que vous êtes connecté à l’ordinateur Server01.

Server01\PS>

À présent, vous pouvez taper des commandes sur l’ordinateur Server01.

Pour mettre fin à la session interactive, tapez :

Exit-PSSession

Pour plus d’informations, consultez Entrée-PSSession.

PROCÉDURE D’UTILISATION D’APPLETS DE COMMANDE DOTÉES D’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 à partir d’ordinateurs distants.

Étant donné que 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 n’importe quel ordinateur exécutant Windows PowerShell. Il n’est pas nécessaire que les ordinateurs soient configurés pour la communication à distance Windows PowerShell, et il n’est pas nécessaire qu’ils répondent à 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 règle générale, les applets de commande qui prennent en charge la communication à distance sans configuration spéciale ont un paramètre ComputerName et n’ont pas de paramètre Session . Pour trouver ces applets de commande dans votre session, tapez :

Get-Command | Where-Object {
	$_.Parameters.Keys -contains 'ComputerName' -and
	$_.Parameters.Keys -notcontains 'Session'
}

COMMENT EXÉCUTER UNE COMMANDE À DISTANCE

Pour exécuter d’autres commandes sur des 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 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 les situations dans lesquelles vous exécutez une seule commande ou plusieurs commandes non liées sur un ou plusieurs ordinateurs. Pour établir une connexion persistante à un ordinateur distant, utilisez le paramètre Session.

COMMENT CRÉER UNE CONNEXION PERSISTANTE (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 lorsque la commande est terminée. Toutes les variables ou fonctions définies dans la commande sont perdues.

Pour créer une connexion persistante à un ordinateur distant, utilisez l’applet de commande New-PSSession. Par exemple, la commande suivante crée PSSessions sur les ordinateurs Server01 et Server02, puis enregistre les PSSessions dans la variable $s.

$s = New-PSSession -ComputerName Server01, Server02

COMMENT EXÉCUTER DES COMMANDES DANS UNE PSSESSION

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

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

Étant donné que PSSession utilise une connexion persistante, vous pouvez exécuter une autre commande dans la même PSSession qui utilise la variable $p. La commande suivante comptabilise le nombre de processus enregistrés dans $p.

Invoke-Command -Session $s -ScriptBlock {$p.count}

COMMENT EXÉCUTER UNE COMMANDE À DISTANCE SUR PLUSIEURS ORDINATEURS

Pour exécuter une commande à distance sur plusieurs ordinateurs, tapez tous les noms d’ordinateurs dans la valeur du paramètre ComputerName de 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 PSSessions sur les ordinateurs Server01, Server02 et Server03, puis exécutent une commande Get-Culture dans chacun des PSSessions.

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

Pour inclure la liste des ordinateurs locaux, 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 de 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 de fichiers.

COMMENT ARRÊTER UNE COMMANDE À DISTANCE

Pour interrompre une commande, appuyez sur CTRL+C. La demande d’interruption est transmise à l’ordinateur distant où elle met fin à la commande à distance.

POUR PLUS D’INFORMATIONS

  • Pour plus d’informations sur la configuration système 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équemment posées, consultez about_Remote_FAQ.

  • Pour obtenir de l’aide sur la résolution des erreurs de communication à distance, reportez-vous à la about_Remote_Troubleshooting.

  • Pour plus d’informations sur les sessions PSSession et les connexions persistantes, consultez about_PSSessions.

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

MOTS-CLÉS

about_Remoting

VOIR AUSSI

about_PSSessions

about_Remote_Disconnected_Sessions

à_propos_des_exigences_à_distance

about_Remote_FAQ

about_Remote_TroubleShooting

à propos des variables distantes

Enter-PSSession

Invoke-Command

New-PSSession