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