Windows PowerShell Remoting
La communication à distance Windows PowerShell, qui utilise le protocole WS-Management, vous permet d'exécuter n'importe quelle commande Windows PowerShell sur un ou plusieurs ordinateurs distants. Il vous permet d'établir des connexions persistantes, de démarrer des sessions interactives 1: 1 et d'exécuter des scripts sur plusieurs ordinateurs. Pour utiliser la communication à distance Windows PowerShell, l'ordinateur distant doit être configuré pour la gestion à distance. Après avoir configuré la communication à distance Windows PowerShell, de nombreuses stratégies de communication à distance sont à votre disposition. Le reste de ce document n'en énumère que quelques-uns.
Démarrer une session interactive
Pour démarrer une session interactive avec un seul ordinateur distant, utilisez l'applet de commande Enter-PSSession. Par exemple, pour démarrer une session interactive avec l'ordinateur distant Server01, tapez:
Enter-PSSession Server01
L'invite de commandes change pour afficher le nom de l'ordinateur auquel vous êtes connecté. À partir de là, toutes les commandes que vous tapez à l'invite s'exécutent sur l'ordinateur distant et les résultats s'affichent sur l'ordinateur local.
Pour terminer la session interactive, tapez:
Exit-PSSession
Exécutez une commande à distance
Pour exécuter une commande sur un ou plusieurs ordinateurs distants, utilisez l'applet de commande Invoke-Command. Par exemple, pour exécuter une commande Get-UICulture sur les ordinateurs distants Server01 et Server02, tapez:
invoke-command -computername Server01, Server02 {get-UICulture}
La sortie est renvoyée à votre ordinateur.
LCID Name DisplayName PSComputerName
---- ---- ----------- --------------
1033 en-US English (United States) server01.corp.fabrikam.com
1033 en-US English (United States) server02.corp.fabrikam.com
Exécuter un script
Pour exécuter un script sur un ou plusieurs ordinateurs distants, utilisez le paramètre FilePath de l'applet de commande Invoke-Command. Le script doit être sur ou accessible à votre ordinateur local. Les résultats sont renvoyés sur votre ordinateur local.
Par exemple, la commande suivante exécute le script DiskCollect.ps1 sur les ordinateurs distants Server01 et Server02.
invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1
Établir une connexion persistante
Pour exécuter une série de commandes associées qui partagent des données, créez une session sur l'ordinateur distant, puis utilisez l'applet de commande Invoke-Command pour exécuter des commandes dans la session que vous créez. Pour créer une session distante, utilisez l'applet de commande New-PSSession.
Par exemple, la commande suivante crée une session distante sur l'ordinateur Server01 et une autre session distante sur l'ordinateur Server02. Il enregistre les objets de session dans la variable $ s.
$s = new-pssession -computername Server01, Server02
Maintenant que les sessions sont établies, vous pouvez y exécuter n'importe quelle commande. Et comme les sessions sont persistantes, vous pouvez collecter des données dans une commande et les utiliser dans une commande suivante.
Par exemple, la commande suivante exécute une commande Get-Hotfix dans les sessions de la variable $ s et enregistre les résultats dans la variable $ h. La variable $ h est créée dans chacune des sessions dans $ s, mais elle n'existe pas dans la session locale.
invoke-command -session $s {$h = get-hotfix}
Vous pouvez maintenant utiliser les données de la variable $ h dans les commandes suivantes, comme la suivante. Les résultats sont affichés sur l'ordinateur local.
invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"} }