RUBRIQUE about_PSSessions DESCRIPTION COURTE Décrit les sessions Windows PowerShell (sessions PSSession) et explique comment établir une connexion permanente à un ordinateur distant. DESCRIPTION LONGUE Pour exécuter des commandes Windows PowerShell sur un ordinateur distant, vous pouvez utiliser le paramètre ComputerName d'une applet de commande ou créer une session PSSession Windows PowerShell pour y exécuter les commandes. Lorsque vous créez une session PSSession, Windows PowerShell établit une connexion permanente à l'ordinateur distant. Utilisez une session PSSession pour exécuter une série de commandes connexes sur un ordinateur distant. Les commandes qui s'exécutent dans la même session PSSession peuvent partager des données, telles que les valeurs des variables, alias et fonctions. Vous pouvez également créer une session PSSession sur l'ordinateur local et y exécuter des commandes. Une session PSSession locale utilise l'infrastructure de communication à distance Windows PowerShell pour créer et conserver la session PSSession. Cette rubrique explique comment créer, utiliser, obtenir et supprimer des sessions PSSession. Pour plus d'informations, consultez about_PSSession_Details. Remarque : les sessions PSSession utilisent l'infrastructure de communication à distance Windows PowerShell. Pour utiliser des sessions PSSession, les ordinateurs locaux et distants doivent être configurés pour la communication à distance. Pour plus d'informations, consultez about_Remote_Requirements. Sous Windows Vista et les versions ultérieures de Windows, pour créer une session PSSession sur un ordinateur local, vous devez démarrer Windows PowerShell avec l'option " Exécuter en tant qu'administrateur ". QU'EST-CE QU'UNE SESSION ? Une session est un environnement dans lequel Windows PowerShell s'exécute. Dès que vous démarrez Windows PowerShell, une session est créée pour vous et vous pouvez y exécuter des commandes. Vous pouvez également ajouter des éléments à votre session, tels que des modules et composants logiciels enfichables, mais aussi en créer, par exemple des variables, des fonctions et des alias. Ces éléments existent uniquement dans la session et sont supprimés lorsqu'elle se termine. Vous pouvez également créer des sessions supplémentaires, appelées " sessions Windows PowerShell " ou " sessions PSSession ", sur l'ordinateur local ou un ordinateur distant. Comme dans la session par défaut, vous pouvez exécuter des commandes dans une session PSSession et ajouter et créer des éléments. Toutefois, contrairement à la session qui démarre automatiquement, vous pouvez contrôler les sessions PSSession que vous créez. Vous pouvez obtenir, créer, configurer et supprimer ce type de session et vous pouvez exécuter plusieurs commandes dans la même session PSSession. La session PSSession reste ouverte et disponible jusqu'à ce que vous la supprimiez de votre session. En général, vous créez une session PSSession pour exécuter une série de commandes connexes sur un ordinateur distant. Lorsque vous créez une session PSSession sur un ordinateur distant, Windows PowerShell établit une connexion permanente à cet ordinateur pour prendre en charge la session. Si vous utilisez le paramètre ComputerName des applets de commande Invoke-Command ou Enter-PSSession pour exécuter une commande distante ou démarrer une session interactive, Windows PowerShell crée une session temporaire sur l'ordinateur distant et ferme la session dès que la commande s'achève ou que la session interactive se termine. Vous ne pouvez pas contrôler ces sessions temporaires, ni les utiliser pour autre chose qu'une commande simple ou une session interactive unique. Dans Windows PowerShell, la " session active " est la session dans laquelle vous travaillez. La " session active " peut faire référence à toute session, y compris à une session temporaire ou à une session PSSession. POURQUOI UTILISER UNE SESSION PSSESSION ? Utilisez une session PSSession lorsque vous avez besoin d'une connexion permanente à un ordinateur distant. Avec une session PSSession, vous pouvez exécuter une série de commandes qui partagent des données, telles que la valeur des variables, le contenu d'une fonction ou la définition d'un alias. Vous pouvez exécuter des commandes distantes sans créer de session PSSession. Utilisez le paramètre ComputerName d'applets de commande capables de fonctionner à distance pour exécuter une commande simple ou une série de commandes non liées sur un ou plusieurs ordinateurs. Lorsque vous utilisez le paramètre ComputerName de Invoke-Expressi on ou de Enter-PSSession, Windows PowerShell établit une connexion temporaire à l'ordinateur distant puis la ferme dès que la commande s'achève. Tous les éléments de données que vous créez sont perdus lorsque la connexion est fermée. Les autres applets de commande qui disposent d'un paramètre ComputerName, telles que Get-Eventlog et Get-WmiObject, utilisent des technologies de communication à distance différentes pour recueillir des données. Aucune d'elles ne crée de connexion permanente comme le fait une session PSSession. COMMENT CRÉER UNE SESSION PSSESSION Pour créer une session PSSession, utilisez l'applet de commande New-PSSession. Pour créer la session PSSession sur un ordinateur distant, utilisez le paramètre ComputerName de l'applet de commande New-PSSession. Par exemple, la commande suivante crée une session PSSession sur l'ordinateur Server01. new-pssession -computername Server01 Lorsque vous envoyez la commande, New-PSSession crée la session PSSession et retourne un objet qui la représente. Vous pouvez enregistrer l'objet dans une variable lorsque vous créez la session PSSession ou utiliser une commande Get-PSSession pour obtenir la session PSSession plus tard. Par exemple, la commande suivante crée une session PSSession sur l'ordinateur Server01 et enregistre l'objet qui en résulte dans la variable $ps. $ps = new-pssession -computername Server01 COMMENT CRÉER DES SESSIONS PSSESSION SUR PLUSIEURS ORDINATEURS Pour créer des sessions PSSession sur plusieurs ordinateurs, utilisez le paramètre ComputerName de l'applet de commande New-PSSession. Tapez les noms des ordinateurs distants dans une liste séparée par des virgules. Par exemple, pour créer des sessions PSSession sur les ordinateurs Server01, Server02 et Server03, tapez : new-PSSession -computername Server01, Server02, Server03 New-PSSession crée une session PSSession sur chacun des ordinateurs distants. COMMENT OBTENIR DES SESSIONS PSSESSION Pour obtenir les sessions PSSession qui ont été créées dans votre session active, utilisez l'applet de commande Get-PSSession. Get-PSSession retourne le même type d'objet que New-PSSession. La commande suivante obtient toutes les sessions PSSession qui ont été créées dans la session active. get-PSSession L'affichage par défaut des sessions PSSession affiche leur ID et un nom d'affichage par défaut. Vous pouvez affecter un autre nom d'affichage lorsque vous créez la session. Id Name ComputerName State ConfigurationName --- ---- ------------ ----- --------------------- 1 Session1 Server01 Opened Microsoft.PowerShell 2 Session2 Server02 Opened Microsoft.PowerShell 3 Session3 Server03 Opened Microsoft.PowerShell Vous pouvez également enregistrer les sessions PSSession dans une variable. La commande suivante obtient les sessions PSSession et les enregistre dans la variable $ps123. $ps123 = get-PSSession Lorsque vous utilisez des applets de commande PSSession, vous pouvez faire référence à une session PSSession par son ID, par son nom ou par son ID d'instance (GUID). La commande suivante obtient une session PSSession par son ID et l'enregistre dans la variable $ps01. $ps01 = get-PSSession -id 1 Get-PSSession obtient uniquement les sessions PSSession qui ont été créées dans la session active. Elle n'obtient pas les sessions PSSession qui ont été créées dans d'autres sessions ou sur d'autres ordinateurs, même si les sessions sont connectées à l'ordinateur local et y exécutent des commandes. COMMENT EXÉCUTER DES COMMANDES DANS UNE SESSION PSSESSION Pour exécuter une commande dans une ou plusieurs sessions PSSession, utilisez l'applet de commande Invoke-Command. Utilisez le paramètre Session pour spécifier les sessions PSSession et le paramètre ScriptBlock pour spécifier la commande. Par exemple, pour exécuter une commande Get-ChildItem (" dir ") dans chacune des trois sessions PSSession enregistrées dans la variable $ps123, tapez : invoke-command -session $ps123 -scriptblock {get-childitem} COMMENT SUPPRIMER DES SESSIONS PSSESSION Lorsque vous avez fini de travailler avec la session PSSession, utilisez l'applet de commande Remove-PSSession pour la supprimer et libérer les ressources qu'elle utilisait. remove-PSSession -session $ps - ou - remove-PSSession -id 1 Si vous ne supprimez pas la session PSSession, elle reste ouverte et disponible jusqu'à ce que vous fermiez la session active ou quittiez Windows PowerShell. Vous pouvez également utiliser le paramètre TimeOut de New-PSSession pour établir un délai d'expiration pour une session PSSession inactive. Pour plus d'informations, consultez new-PSSession. LES APPLETS DE COMMANDE DE SESSION PSSESSION Applet de commande Description ------------------ ----------- New-PSSession Crée une session PSSession sur un ordinateur local ou distant. Get-PSSession Obtient les sessions PSSession de la session active. Remove-PSSession Supprime les sessions PSSession de la session active. Enter-PSSession Démarre une session interactive. Exit-PSSession Met fin à une session interactive. Pour obtenir une liste des applets de commande PSSession, tapez : get-help *-PSSession PLUS D'INFORMATIONS Pour plus d'informations sur les sessions PSSession, consultez about_PSSession_Details. VOIR AUSSI about_Remote about_Remote_Requirements New-PSSession Get-PSSession Remove-PSSession Enter-PSSession Exit-PSSession Invoke-Command