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