Vous pouvez exécuter des commandes sur un ou des centaines d'ordinateurs à l'aide d'une seule commande Windows PowerShell. Windows PowerShell prend en charge le traitement à distance à l'aide de différentes technologies, notamment WMI, RPC et Gestion des services Web.

Communication à distance sans configuration

De nombreuses applets de commande Windows PowerShell ont un paramètre ComputerName qui vous permet de collecter des données et de modifier des paramètres sur un ou plusieurs ordinateurs distants. Elles utilisent diverses technologies de communication et bon nombre d'entre elles fonctionnent sur tous les systèmes d'exploitation Windows pris en charge par Windows PowerShell sans aucune configuration spéciale.

Ces applets de commande sont les suivantes :

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"}

Communication à distance Windows PowerShell

La communication à distance Windows PowerShell, qui utilise le protocole Gestion des services Web, vous permet d'exécuter toute commande Windows PowerShell sur un ou plusieurs ordinateurs distants. Elle vous permet d'établir des connexions permanentes, de démarrer des sessions 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. Pour plus d'informations, notamment les instructions, consultez about_Remote_Requirements.

Une fois la communication à distance Windows PowerShell configurée, de nombreuses stratégies de communication à distance s'offrent à vous. Le reste de ce document en répertorie quelques-unes. Pour plus d'informations, consultez about_Remote et about_Remote_FAQ.

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é. Dès lors, toute commande que vous tapez à l'invite s'exécute sur l'ordinateur distant et les résultats sont affichés sur l'ordinateur local.

Pour mettre fin à la session interactive, tapez :

exit-pssession

Pour plus d'informations sur les applets de commande Enter-PSSession et Exit-PSSession, consultez Enter-PSSession et Exit-PSSession.

Exécuter une commande distante

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 retourné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

Pour plus d'informations sur l'applet de commande Invoke-Command, consultez Invoke-Command.

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 situé sur ou accessible à votre ordinateur local. Les résultats sont retournés à 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

Pour plus d'informations sur l'applet de commande Invoke-Command, consultez Invoke-Command.

Établir une connexion permanente

Pour exécuter une série de commandes connexes qui partagent des données, créez une session sur l'ordinateur distant, puis utilisez l'applet de commande Invoke-Command pour exécuter les commandes dans la session que vous venez de créer. Pour créer une session à distance, utilisez l'applet de commande New-PSSession.

Par exemple, la commande suivante crée une session à distance sur l'ordinateur Server01 et une autre session à distance sur l'ordinateur Server02. Elle enregistre les objets session dans la variable $s.

$s = new-pssession -computername Server01, Server02

Maintenant qu'elles sont établies, vous pouvez exécuter n'importe quelle commande dans les sessions. En outre, étant donné que les sessions sont permanentes, 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 dans 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 n'existe pas dans la session locale.

invoke-command -session $s {$h = get-hotfix}

Désormais, vous pouvez utiliser les données de la variable $h dans les commandes suivantes, telles que celle présentée ci-dessous. Les résultats sont affichés sur l'ordinateur local.

invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"

Communication à distance avancée

La gestion à distance Windows PowerShell commence juste ici. À l'aide des applets de commande installées avec Windows PowerShell, vous pouvez établir et configurer des sessions à distance à partir d'ordinateurs locaux et distants, créer des sessions personnalisées et restreintes, autoriser les utilisateurs à importer des commandes à partir d'une session à distance s'exécutant implicitement dans la session à distance, configurer la sécurité d'une session à distance, et bien plus encore.

Pour faciliter la configuration à distance, Windows PowerShell inclut un fournisseur Gestion des services Web. Le lecteur WSMAN: créé par le fournisseur vous permet de naviguer dans une hiérarchie de paramètres de configuration sur l'ordinateur local et les ordinateurs distants. Pour plus d'informations sur le fournisseur Gestion des services Web, consultez WSMan Provider et about_WS-Management_Cmdlets ou tapez « get-help wsman » dans la console Windows PowerShell.

Pour plus d'informations, consultez about_Remote_FAQ, New-PSSessionConfiguration et Import-PSSession. Pour obtenir de l'aide concernant les erreurs de communication à distance, consultez about_Remote_Troubleshooting.

Voir aussi




Table des matières