À propos des sessions déconnectées distantesAbout Remote Disconnected Sessions

Description courteShort description

Explique comment se déconnecter et se reconnecter à une session PowerShell (PSSession).Explains how to disconnect and reconnect to a PowerShell Session (PSSession).

Description longueLong description

À compter de PowerShell 3,0, vous pouvez vous déconnecter d’une session PSSession et vous reconnecter à la session PSSession sur le même ordinateur ou sur un autre ordinateur.Beginning in PowerShell 3.0, you can disconnect from a PSSession and reconnect to the PSSession on the same computer or a different computer. L’état de session est conservé et les commandes de la session PSSession continuent à s’exécuter pendant que la session est déconnectée.The session state is maintained and commands in the PSSession continue to run while the session is disconnected.

La fonctionnalité sessions déconnectées n’est disponible que lorsque l’ordinateur distant exécute PowerShell 3,0 ou une version ultérieure.The Disconnected Sessions feature is only available when the remote computer is running PowerShell 3.0 or a later version.

La fonctionnalité sessions déconnectées vous permet de fermer la session dans laquelle une session PSSession a été créée, et même de fermer PowerShell et d’arrêter l’ordinateur, sans interrompre les commandes qui s’exécutent dans la session PSSession.The Disconnected Sessions feature allows you to close the session in which a PSSession was created, and even close PowerShell, and shut down the computer, without disrupting commands running in the PSSession. Les sessions déconnectées sont utiles pour exécuter des commandes qui prennent beaucoup de temps et fournissent la flexibilité du temps et des appareils requis par les professionnels de l’informatique.Disconnected sessions are useful for running commands that take an extended time to complete, and provides the time and device flexibility that IT professionals require.

Vous ne pouvez pas vous déconnecter d’une session interactive démarrée à l’aide de l’applet de commande Enter-PSSession .You can't disconnect from an interactive session that is started by using the Enter-PSSession cmdlet.

Vous pouvez utiliser des sessions déconnectées pour gérer des sessions PSSession qui ont été déconnectés involontairement suite à une panne de réseau ou d’ordinateur.You can use disconnected sessions to manage PSSessions that were disconnected unintentionally as the result of a computer or network outage.

Dans l’utilisation réelle, la fonctionnalité sessions déconnectées vous permet de commencer à résoudre un problème, d’attirer votre attention sur un problème de priorité plus élevée, puis de reprendre le travail sur la solution, même sur un autre ordinateur situé à un autre emplacement.In real-world use, the Disconnected Sessions feature allows you to begin solving a problem, turn your attention to a higher priority issue, and then resume work on the solution, even on a different computer in a different location.

Applets de commande de session déconnectéeDisconnected session cmdlets

Les applets de commande suivantes prennent en charge la fonctionnalité sessions déconnectées :The following cmdlets support the Disconnected Sessions feature:

  • Connect-PSSession: Se connecte à une session PSSession déconnectée.Connect-PSSession: Connects to a disconnected PSSession.
  • Disconnect-PSSession: Déconnecte une session PSSession.Disconnect-PSSession: Disconnects a PSSession.
  • Get-PSSession: Obtient sessions PSSession sur l’ordinateur local ou sur des ordinateurs distants.Get-PSSession: Gets PSSessions on the local computer or on remote computers.
  • Receive-PSSession: Obtient les résultats des commandes exécutées dans des sessions déconnectées.Receive-PSSession: Gets the results of commands that ran in disconnected sessions.
  • Invoke-Command: Le paramètre InDisconnectedSession crée une session PSSession et se déconnecte immédiatement.Invoke-Command: InDisconnectedSession parameter creates a PSSession and disconnects immediately.

Fonctionnement de la fonctionnalité sessions déconnectéesHow the Disconnected Sessions feature works

À compter de PowerShell 3,0, les sessions PSSession sont indépendants des sessions dans lesquelles ils sont créés.Beginning in PowerShell 3.0, PSSessions are independent of the sessions in which they're created. Les sessions PSSession actifs sont conservés sur l’ordinateur distant ou côté serveur de la connexion, même si la session dans laquelle la session PSSession a été créée est fermée et que l’ordinateur d’origine est arrêté ou déconnecté du réseau.Active PSSessions are maintained on the remote computer or server-side of the connection, even if the session in which the PSSession was created is closed and the originating computer is shut down or disconnected from the network.

Dans PowerShell 2,0, la session PSSession est supprimée de l’ordinateur distant lorsqu’elle est déconnectée de la session d’origine ou que la session dans laquelle elle a été créée se termine.In PowerShell 2.0, the PSSession is deleted from the remote computer when it's disconnected from the originating session or the session in which it was created ends.

Lorsque vous déconnectez une session PSSession, la session PSSession reste active et est conservée sur l’ordinateur distant.When you disconnect a PSSession, the PSSession remains active and is maintained on the remote computer. L’état de session passe de en cours d’exécution à déconnecté .The session state changes from Running to Disconnected . Vous pouvez vous reconnecter à une session PSSession déconnectée à partir de la session active ou d’une autre session sur le même ordinateur ou à partir d’un autre ordinateur.You can reconnect to a disconnected PSSession from the current session or from a different session on the same computer, or from a different computer. L’ordinateur distant qui gère la session doit être en cours d’exécution et être connecté au réseau.The remote computer that maintains the session must be running and be connected to the network.

Les commandes d’une session PSSession déconnectée continuent à s’exécuter sans interruption sur l’ordinateur distant jusqu’à ce que la commande soit terminée ou que la mémoire tampon de sortie soit remplie.Commands in a disconnected PSSession continue to run uninterrupted on the remote computer until the command completes or the output buffer fills. Pour empêcher une mémoire tampon de sortie complète d’interrompre une commande, utilisez le paramètre OutputBufferingMode des Disconnect-PSSession applets de commande, New-PSSessionOption ou New-PSTransportOption .To prevent a full output buffer from suspending a command, use the OutputBufferingMode parameter of the Disconnect-PSSession, New-PSSessionOption, or New-PSTransportOption cmdlets.

Les sessions déconnectées sont conservées dans l’état déconnecté sur l’ordinateur distant.Disconnected sessions are maintained in the disconnected state on the remote computer. Ils sont disponibles pour vous reconnecter, jusqu’à ce que vous supprimiez la session PSSession, par exemple à l’aide de l’applet de commande Remove-PSSession , ou jusqu’à ce que le délai d’inactivité de la session PSSession arrive à expiration.They're available for you to reconnect, until you delete the PSSession, such as by using the Remove-PSSession cmdlet, or until the idle timeout of the PSSession expires. Vous pouvez ajuster le délai d’inactivité d’une session PSSession à l’aide des paramètres IdleTimeoutSec ou IdleTimeout des Disconnect-PSSession applets de commande, New-PSSessionOption ou New-PSTransportOption .You can adjust the idle timeout of a PSSession by using the IdleTimeoutSec or IdleTimeout parameters of the Disconnect-PSSession, New-PSSessionOption, or New-PSTransportOption cmdlets.

Un autre utilisateur peut se connecter à sessions PSSession que vous avez créé, mais uniquement s’il peut fournir les informations d’identification qui ont été utilisées pour créer la session, ou utiliser les RunAs informations d’identification de la configuration de session.Another user can connect to PSSessions that you created, but only if they can provide the credentials that were used to create the session, or use the RunAs credentials of the session configuration.

Obtention de sessions PSSessionHow to get PSSessions

À compter de PowerShell 3,0, l' Get-PSSession applet de commande obtient sessions PSSession sur l’ordinateur local et les ordinateurs distants.Beginning in PowerShell 3.0, the Get-PSSession cmdlet gets PSSessions on the local computer and remote computers. Il peut également recevoir des sessions PSSession qui ont été créés dans la session active.It can also get PSSessions that were created in the current session.

Pour accéder à sessions PSSession sur l’ordinateur local ou les ordinateurs distants, utilisez les paramètres ComputerName ou ConnectionUri .To get PSSessions on the local computer or remote computers, use the ComputerName or ConnectionUri parameters. Sans paramètres, Get-PSSession obtient PSSession qui a été créé dans la session locale, quel que soit l’emplacement où elles se terminent.Without parameters, Get-PSSession gets PSSession that were created in the local session, regardless of where they terminate.

Lorsque vous obtenez des sessions PSSession, n’oubliez pas de les Rechercher sur l’ordinateur sur lequel ils sont conservés, c’est-à-dire sur l’ordinateur distant ou côté serveur .When getting PSSessions, remember to look for them on the computer on which they're maintained, that is, the remote or server-side computer.

Par exemple, si vous créez une session PSSession sur l’ordinateur Serveur01, récupérez la session à partir de l’ordinateur SERVEUR01.For example, if you create a PSSession to the Server01 computer, get the session from the Server01 computer. Si vous créez une session PSSession à partir d’un autre ordinateur sur l’ordinateur local, récupérez la session à partir de l’ordinateur local.If you create a PSSession from another computer to the local computer, get the session from the local computer.

La séquence de commandes suivante montre comment Get-PSSession fonctionne.The following command sequence shows how Get-PSSession works.

La première commande crée une session sur l’ordinateur SERVEUR01.The first command creates a session to the Server01 computer. La session se trouve sur l’ordinateur SERVEUR01.The session resides on the Server01 computer.

New-PSSession -ComputerName Server01
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Pour obtenir la session, utilisez le paramètre ComputerName de Get-PSSession avec la valeur SERVEUR01.To get the session, use the ComputerName parameter of Get-PSSession with a value of Server01.

Get-PSSession -ComputerName Server01
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Si la valeur du paramètre ComputerName de Get-PSSession est localhost, Get-PSSession obtient les sessions PSSession qui se terminent à et sont conservés sur l’ordinateur local.If the value of the ComputerName parameter of Get-PSSession is localhost, Get-PSSession gets PSSessions that terminate at and are maintained on the local computer. Elle n’obtient pas de sessions PSSession sur l’ordinateur Serveur01, même si elles ont été démarrées sur l’ordinateur local.It doesn't get PSSessions on the Server01 computer, even if they were started on the local computer.

Get-PSSession -ComputerName localhost

Pour récupérer les sessions qui ont été créées dans la session active, utilisez l’applet de commande Get-PSSession sans paramètres.To get sessions that were created in the current session, use the Get-PSSession cmdlet without parameters. Dans cet exemple, Get-PSSession obtient la session PSSession créée dans la session active et se connecte à l’ordinateur SERVEUR01.In this example, Get-PSSession gets the PSSession that was created in the current session and connects to the Server01 computer.

Get-PSSession
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Comment déconnecter des sessionsHow to disconnect sessions

Pour déconnecter une session PSSession, utilisez l’applet de commande Disconnect-PSSession .To disconnect a PSSession, use the Disconnect-PSSession cmdlet. Pour identifier la session PSSession, utilisez le paramètre de session ou le pipeline a PSSession des New-PSSession applets de commande ou Get-PSSession à Disconnect-PSSession .To identify the PSSession, use the Session parameter, or pipeline a PSSession from the New-PSSession or Get-PSSession cmdlets to Disconnect-PSSession.

La commande suivante déconnecte la session PSSession à l’ordinateur SERVEUR01.The following command disconnects the PSSession to the Server01 computer. Notez que la valeur de la propriété State est Disconnected et que la disponibilité est None .Notice that the value of the State property is Disconnected and the Availability is None .

Get-PSSession -ComputerName Server01 | Disconnect-PSSession
Id Name      ComputerName  State         ConfigurationName     Availability
-- ----      ------------  -----         -----------------     ------------
 2 Session2  Server01      Disconnected  Microsoft.PowerShell          None

Pour créer une session déconnectée, utilisez le paramètre InDisconnectedSession de l’applet de commande Invoke-Command .To create a disconnected session, use the InDisconnectedSession parameter of the Invoke-Command cmdlet. Il crée une session, démarre la commande et se déconnecte immédiatement, avant que la commande puisse retourner une sortie.It creates a session, starts the command, and disconnects immediately, before the command can return any output.

La commande suivante exécute une Get-WinEvent commande dans une session déconnectée sur l’ordinateur distant SERVER02.The following command runs a Get-WinEvent command in a disconnected session on the Server02 remote computer.

Invoke-Command -ComputerName Server02 -InDisconnectedSession -ScriptBlock {
   Get-WinEvent -LogName "*PowerShell*" }
Id Name      ComputerName  State         ConfigurationName     Availability
-- ----      ------------  -----         -----------------     ------------
 4 Session3  Server02      Disconnected  Microsoft.PowerShell          None

Comment se connecter à des sessions déconnectéesHow to connect to disconnected sessions

Vous pouvez vous connecter à n’importe quelle session PSSession déconnectée à partir de la session dans laquelle vous avez créé la session PSSession ou d’autres sessions sur l’ordinateur local ou sur d’autres ordinateurs.You can connect to any available disconnected PSSession from the session in which you created the PSSession or from other sessions on the local computer or other computers.

Vous pouvez créer une session PSSession, exécuter des commandes dans la session PSSession, vous déconnecter de la session PSSession, fermer PowerShell et arrêter l’ordinateur.You can create a PSSession, run commands in the PSSession, disconnect from the PSSession, close PowerShell, and shut down the computer. Quelques heures plus tard, vous pouvez ouvrir un autre ordinateur, obtenir la session PSSession, vous y connecter et obtenir les résultats des commandes exécutées dans la session PSSession pendant qu’elle était déconnectée.Hours later, you can open a different computer, get the PSSession, connect to it, and get the results of commands that ran in the PSSession while it was disconnected. Vous pouvez ensuite exécuter d’autres commandes dans la session.Then you can run more commands in the session.

Pour connecter une session PSSession déconnectée, utilisez l’applet de commande Connect-PSSession .To connect a disconnected PSSession, use the Connect-PSSession cmdlet. Utilisez les paramètres ComputerName ou ConnectionUri pour identifier la session PSSession ou le pipeline d’une session PSSession Get-PSSession Connect-PSSession .Use the ComputerName or ConnectionUri parameters to identify the PSSession, or pipeline a PSSession from Get-PSSession to Connect-PSSession.

La commande suivante obtient les sessions sur l’ordinateur Server02.The following command gets the sessions on the Server02 computer. La sortie comprend deux sessions déconnectées, qui sont toutes deux disponibles.The output includes two disconnected sessions, both of which are available.

Get-PSSession -ComputerName Server02
Id Name      ComputerName   State         ConfigurationName     Availability
-- ----      ------------   -----         -----------------     ------------
 2 Session2  juneb-srv8320  Disconnected  Microsoft.PowerShell          None
 4 Session3  juneb-srv8320  Disconnected  Microsoft.PowerShell          None

La commande suivante permet de se connecter à session2.The following command connects to Session2. La session PSSession est maintenant ouverte et disponible.The PSSession is now open and available.

Connect-PSSession -ComputerName Server02 -Name Session2
Id Name      ComputerName    State    ConfigurationName     Availability
-- ----      ------------    -----    -----------------     ------------
 2 Session2  juneb-srv8320   Opened   Microsoft.PowerShell     Available

Obtention des résultatsHow to get the results

Pour obtenir les résultats des commandes exécutées dans une session PSSession déconnectée, utilisez l’applet de commande Receive-PSSession .To get the results of commands that ran in a disconnected PSSession, use the Receive-PSSession cmdlet.

Vous pouvez utiliser Receive-PSSession plutôt que l’applet de commande Connect-PSSession .You can use Receive-PSSession rather than using the Connect-PSSession cmdlet. Si la session est déjà reconnectée, Receive-PSSession obtient les résultats des commandes exécutées lorsque la session a été déconnectée.If the session is already reconnected, Receive-PSSession gets the results of commands that ran when the session was disconnected. Si la session PSSession est toujours déconnectée, Receive-PSSession se connecte à celle-ci, puis obtient les résultats des commandes qui ont été exécutées pendant qu’elle a été déconnectée.If the PSSession is still disconnected, Receive-PSSession connects to it and then gets the results of commands that ran while it was disconnected.

Receive-PSSession peut retourner les résultats dans un travail (de façon asynchrone) ou au programme hôte (de façon synchrone).Receive-PSSession can return the results in a job (asynchronously) or to the host program (synchronously). Utilisez le paramètre distarget pour sélectionner un travail ou un hôte .Use the OutTarget parameter to select Job or Host . La valeur par défaut est Host .The default value is Host . Toutefois, si la commande en cours de réception a été démarrée dans la session active en tant que tâche , elle est retournée par défaut en tant que tâche .However, if the command that's being received was started in the current session as a Job , it's returned as a Job by default.

La commande suivante utilise l' Receive-PSSession applet de commande pour se connecter à la session PSSession sur l’ordinateur Server02 et obtenir les résultats de la Get-WinEvent commande exécutée dans la session session3.The following command uses the Receive-PSSession cmdlet to connect to the PSSession on the Server02 computer and get the results of the Get-WinEvent command that ran in the Session3 session. La commande utilise le paramètre distarget pour obtenir les résultats dans un travail .The command uses the OutTarget parameter to get the results in a Job .

Receive-PSSession -ComputerName Server02 -Name Session3 -OutTarget Job
Id   Name   PSJobTypeName   State         HasMoreData     Location
--   ----   -------------   -----         -----------     --------
 3   Job3   RemoteJob       Running       True            Server02

Pour obtenir les résultats du travail, utilisez l' Receive-Job applet de commande.To get the job's results, use the Receive-Job cmdlet.

Get-Job | Receive-Job -Keep
ProviderName: PowerShell

TimeCreated             Id LevelDisplayName Message     PSComputerName
-----------             -- ---------------- -------     --------------
5/14/2012 7:26:04 PM   400 Information      Engine stat Server02
5/14/2012 7:26:03 PM   600 Information      Provider "W Server02
5/14/2012 7:26:03 PM   600 Information      Provider "C Server02
5/14/2012 7:26:03 PM   600 Information      Provider "V Server02

Propriétés d’État et de disponibilitéState and Availability properties

Les propriétés d' État et de disponibilité d’une session PSSession déconnectée vous indiquent si la session est disponible pour vous y reconnecter.The State and Availability properties of a disconnected PSSession tell you whether the session is available for you to reconnect to it.

Quand une session PSSession est connectée à la session active, son état est ouvert et sa disponibilité est disponible .When a PSSession is connected to the current session, its state is Opened and its availability is Available . Lorsque vous vous déconnectez de la session PSSession, l’État PSSession est déconnecté et sa disponibilité est None .When you disconnect from the PSSession, the PSSession state is Disconnected and its availability is None .

La valeur de la propriété State dépend de la session active.The value of the State property is relative to the current session. La valeur Disconnected signifie que la session PSSession n’est pas connectée à la session active.A value of Disconnected means that the PSSession isn't connected to the current session. Mais cela ne signifie pas que la session PSSession est déconnectée de toutes les sessions.But, it doesn't mean that the PSSession is disconnected from all sessions. Elle peut être connectée à une autre session.It might be connected to a different session.

Pour déterminer si vous pouvez vous connecter ou vous reconnecter à la session PSSession, utilisez la propriété Availability .To determine whether you can connect or reconnect to the PSSession, use the Availability property. La valeur None indique que vous pouvez vous connecter à la session.A value of None indicates that you can connect to the session. La valeur Busy indique que vous ne pouvez pas vous connecter à la session PSSession, car elle est connectée à une autre session.A value of Busy indicates that you can't connect to the PSSession because it's connected to another session.

L’exemple suivant est exécuté dans deux sessions PowerShell sur le même ordinateur.The following example is run in two PowerShell sessions on the same computer. Notez les valeurs modifiées des propriétés d' État et de disponibilité dans chaque session lorsque la session PSSession est déconnectée et reconnectée.Note the changing values of the State and Availability properties in each session as the PSSession is disconnected and reconnected.

# Session 1
New-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1  Test   Server30        Opened        Microsoft.PowerShell     Available
# Session 2
Get-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          Busy
# Session 1
Get-PSSession -ComputerName Server30 -Name Test | Disconnect-PSSession
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          None
# Session 2
Get-PSSession -ComputerName Server30
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          None
# Session 2
Connect-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
3 Test    Server30        Opened        Microsoft.PowerShell     Available
# Session 1
Get-PSSession -ComputerName Server30
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          Busy
# Idle Timeout

Les sessions déconnectées sont conservées sur l’ordinateur distant jusqu’à ce que vous les supprimiez, par exemple à l’aide de l’applet de commande Remove-PSSession ou qu’elles expirent. La propriété IdleTimeout d’une session PSSession détermine la durée pendant laquelle une session déconnectée est conservée avant d’être supprimée.Disconnected sessions are maintained on the remote computer until you delete them, such as by using the Remove-PSSession cmdlet, or they time out. The IdleTimeout property of a PSSession determines how long a disconnected session is maintained before it's deleted.

Les sessions PSSession sont inactifs lorsque le thread de pulsation ne reçoit pas de réponse.PSSessions are idle when the heartbeat thread receives no response. La déconnexion d’une session rend celle-ci inactive et démarre l’horloge IdleTimeout , même si les commandes sont toujours en cours d’exécution dans la session déconnectée.Disconnecting a session makes it idle and starts the IdleTimeout clock, even if commands are still running in the disconnected session. PowerShell considère que les sessions déconnectées sont actives, mais inactives.PowerShell considers disconnected sessions to be active, but idle.

Lors de la création et de la déconnexion des sessions, vérifiez que le délai d’inactivité dans la session PSSession est suffisamment long pour maintenir la session en fonction de vos besoins, mais pas si longtemps qu’elle consomme des ressources inutiles sur l’ordinateur distant.When creating and disconnecting sessions, verify that the idle timeout in the PSSession is long enough to maintain the session for your needs, but not so long that it consumes unnecessary resources on the remote computer.

La propriété IdleTimeoutMs de la configuration de session détermine le délai d’inactivité par défaut des sessions qui utilisent la configuration de session.The IdleTimeoutMs property of the session configuration determines the default idle timeout of sessions that use the session configuration. Vous pouvez remplacer la valeur par défaut, mais la valeur que vous utilisez ne peut pas dépasser la propriété MaxIdleTimeoutMs de la configuration de session.You can override the default value, but the value that you use can't exceed the MaxIdleTimeoutMs property of the session configuration.

Pour rechercher la valeur des valeurs IdleTimeoutMs et MaxIdleTimeoutMs d’une configuration de session, utilisez le format de commande suivant.To find the value of the IdleTimeoutMs and MaxIdleTimeoutMs values of a session configuration, use the following command format.

Get-PSSessionConfiguration |
  Format-Table Name, IdleTimeoutMs, MaxIdleTimeoutMs

Vous pouvez remplacer la valeur par défaut dans la configuration de session et définir le délai d’inactivité d’une session PSSession lorsque vous créez une session PSSession et lorsque vous vous déconnectez.You can override the default value in the session configuration and set the idle timeout of a PSSession when you create a PSSession and when you disconnect.

Si vous êtes membre du groupe Administrateurs sur l’ordinateur distant, vous pouvez créer et modifier les propriétés IdleTimeoutMs et MaxIdleTimeoutMs des configurations de session.If you're a member of the Administrators group on the remote computer, you can create and change the IdleTimeoutMs and MaxIdleTimeoutMs properties of session configurations.

Valeurs du délai d’inactivitéIdle timeout values

La valeur du délai d’inactivité des configurations de session et des options de session est exprimée en millisecondes.The idle timeout value of session configurations and session options is in milliseconds. La valeur du délai d’inactivité des sessions et des options de configuration de session est en secondes.The idle timeout value of sessions and session configuration options is in seconds.

Vous pouvez définir le délai d’inactivité d’une session PSSession quand vous créez la session PSSession ( New-PSSession , Invoke-Command ) et lorsque vous vous déconnectez de celle-ci ( Disconnect-PSSession ).You can set the idle timeout of a PSSession when you create the PSSession (New-PSSession, Invoke-Command) and when you disconnect from it (Disconnect-PSSession). Toutefois, vous ne pouvez pas modifier la valeur IdleTimeout lorsque vous vous connectez à la session PSSession ( Connect-PSSession ) ou obtenir les résultats ( Receive-PSSession ).However, you can't change the IdleTimeout value when you connect to the PSSession (Connect-PSSession) or get results (Receive-PSSession).

Les Connect-PSSession applets de commande et Receive-PSSession ont un paramètre SessionOption qui prend un objet SessionOption , tel que celui retourné par l’applet de commande New-PSSessionOption .The Connect-PSSession and Receive-PSSession cmdlets have a SessionOption parameter that takes a SessionOption object, such as one returned by the New-PSSessionOption cmdlet. La valeur IdleTimeout de l’objet SessionOption et la valeur IdleTimeout de la $PSSessionOption variable preference ne modifient pas la valeur de l’option IdleTimeout de la session PSSession dans une Connect-PSSession commande ou Receive-PSSession .The IdleTimeout value in SessionOption object and the IdleTimeout value in the $PSSessionOption preference variable don't change the value of the IdleTimeout of the PSSession in a Connect-PSSession or Receive-PSSession command.

Pour créer une session PSSession avec une valeur de délai d’inactivité particulière, créez une $PSSessionOption variable de préférence.To create a PSSession with a particular idle timeout value, create a $PSSessionOption preference variable. Définissez la valeur de la propriété IdleTimeout sur la valeur souhaitée (en millisecondes).Set the value of the IdleTimeout property to the desired value (in milliseconds).

Lorsque vous créez des sessions PSSession, les valeurs de $PSSessionOption variables sont prioritaires sur les valeurs de la configuration de session.When you create PSSessions, the values in $PSSessionOption variable take precedence over the values in the session configuration.

Par exemple, la commande suivante définit un délai d’inactivité de 48 heures :For example, the following command sets an idle timeout of 48 hours:

$PSSessionOption = New-PSSessionOption -IdleTimeoutMSec 172800000

Pour créer une session PSSession avec une valeur de délai d’inactivité particulière, utilisez le paramètre IdleTimeoutMSec de l’applet de commande New-PSSessionOption .To create a PSSession with a particular idle timeout value, use the IdleTimeoutMSec parameter of the New-PSSessionOption cmdlet. Utilisez ensuite l’option de session dans la valeur du paramètre SessionOption des New-PSSession applets de commande ou Invoke-Command .Then, use the session option in the value of the SessionOption parameter of the New-PSSession or Invoke-Command cmdlets.

Les valeurs définies lors de la création de la session sont prioritaires par rapport aux valeurs définies dans la $PSSessionOption variable de préférence et la configuration de session.The values set when creating the session take precedence over the values set in the $PSSessionOption preference variable and the session configuration.

Par exemple :For example:

$o = New-PSSessionOption -IdleTimeoutMSec 172800000
New-PSSession -SessionOption $o

Pour modifier le délai d’inactivité d’une session PSSession lors de la déconnexion, utilisez le paramètre IdleTimeoutSec de l’applet de commande Disconnect-PSSession .To change the idle timeout of a PSSession when disconnecting, use the IdleTimeoutSec parameter of the Disconnect-PSSession cmdlet.

Par exemple :For example:

Disconnect-PSSession -IdleTimeoutSec 172800

Pour créer une configuration de session avec un délai d’inactivité particulier et un délai d’inactivité maximal, utilisez les paramètres IdleTimeoutSec et MaxIdleTimeoutSec de l’applet de commande New-PSTransportOption .To create a session configuration with a particular idle timeout and maximum idle timeout, use the IdleTimeoutSec and MaxIdleTimeoutSec parameters of the New-PSTransportOption cmdlet. Ensuite, utilisez l’option de transport dans la valeur du paramètre TransportOption de Register-PSSessionConfiguration .Then, use the transport option in the value of the TransportOption parameter of Register-PSSessionConfiguration.

Par exemple :For example:

$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Register-PSSessionConfiguration -Name Test -TransportOption $o

Pour modifier le délai d’inactivité par défaut et le délai d’inactivité maximal pour une configuration de session, utilisez les paramètres IdleTimeoutSec et MaxIdleTimeoutSec de l’applet de commande New-PSTransportOption .To change the default idle timeout and maximum idle timeout of a session configuration, use the IdleTimeoutSec and MaxIdleTimeoutSec parameters of the New-PSTransportOption cmdlet. Ensuite, utilisez l’option de transport dans la valeur du paramètre TransportOption de Set-PSSessionConfiguration .Then, use the transport option in the value of the TransportOption parameter of Set-PSSessionConfiguration.

Par exemple :For example:

$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Set-PSSessionConfiguration -Name Test -TransportOption $o

Mode de mise en mémoire tampon de sortieOutput buffering mode

Le mode de mise en mémoire tampon de sortie d’une session PSSession détermine comment la sortie de la commande est gérée lorsque la mémoire tampon de sortie de la session PSSession est pleine.The output buffering mode of a PSSession determines how command output is managed when the output buffer of the PSSession is full.

Dans une session déconnectée, le mode de mise en mémoire tampon de sortie détermine en réalité si la commande continue de s’exécuter pendant que la session est déconnectée.In a disconnected session, the output buffering mode effectively determines whether the command continues to run while the session is disconnected.

Les valeurs valides sont les suivantes :The valid values as follows:

  • Bloquer .Block . Quand la mémoire tampon de sortie est pleine, l'exécution est suspendue jusqu'à ce que la mémoire tampon soit effacée.When the output buffer is full, execution is suspended until the buffer is clear. Valeur par défaut.The default value.
  • Supprimer .Drop . Quand la mémoire tampon de sortie est pleine, l'exécution se poursuit.When the output buffer is full, execution continues. À mesure que de nouvelles sorties sont générées, la sortie la plus ancienne est ignorée.As new output is generated, the oldest output is discarded.

Block conserve les données, mais peut interrompre la commande.Block preserves data, but might interrupt the command. La valeur Drop permet l'exécution de la commande, même si des données peuvent être perdues.A value of Drop allows the command to complete, although data might be lost. Quand vous utilisez la valeur Drop , redirigez la sortie de la commande vers un fichier sur disque.When using the Drop value, redirect the command output to a file on disk. Cette valeur est recommandée pour les sessions déconnectées.This value is recommended for disconnected sessions.

La propriété OutputBufferingMode de la configuration de session détermine le mode de mise en mémoire tampon de sortie par défaut des sessions qui utilisent la configuration de session.The OutputBufferingMode property of the session configuration determines the default output buffering mode of sessions that use the session configuration.

Pour trouver la valeur de la configuration de session OutputBufferingMode , vous pouvez utiliser l’un des formats de commande suivants :To find a session configuration's value of the OutputBufferingMode , you can use either of the following command formats:

(Get-PSSessionConfiguration <ConfigurationName>).OutputBufferingMode
Get-PSSessionConfiguration | Format-Table Name, OutputBufferingMode

Vous pouvez remplacer la valeur par défaut dans la configuration de session et définir le mode de mise en mémoire tampon de sortie d’une session PSSession quand vous créez une session PSSession, lorsque vous vous déconnectez, et lorsque vous vous reconnectez.You can override the default value in the session configuration and set the output buffering mode of a PSSession when you create a PSSession, when you disconnect, and when you reconnect.

Si vous êtes membre du groupe Administrateurs sur l’ordinateur distant, vous pouvez créer et modifier le mode de mise en mémoire tampon de sortie des configurations de session.If you're a member of the Administrators group on the remote computer, you can create and change the output buffering mode of session configurations.

Pour créer une session PSSession avec le mode de suppression de la mise en mémoire tampon de sortie, créez une $PSSessionOption variable de préférence dans laquelle la valeur de la propriété OutputBufferingMode est Drop .To create a PSSession with an output buffering mode of Drop , create a $PSSessionOption preference variable in which the value of the OutputBufferingMode property is Drop .

Lorsque vous créez des sessions PSSession, les valeurs de $PSSessionOption variables sont prioritaires sur les valeurs de la configuration de session.When you create PSSessions, the values in $PSSessionOption variable take precedence over the values in the session configuration.

Par exemple :For example:

$PSSessionOption = New-PSSessionOption -OutputBufferingMode Drop

Pour créer une session PSSession avec le mode de mise en mémoire tampon de sortie Drop , utilisez le paramètre OutputBufferingMode de l' New-PSSessionOption applet de commande pour créer une option de session avec la valeur Drop .To create a PSSession with an output buffering mode of Drop , use the OutputBufferingMode parameter of the New-PSSessionOption cmdlet to create a session option with a value of Drop . Utilisez ensuite l’option de session dans la valeur du paramètre SessionOption des New-PSSession applets de commande ou Invoke-Command .Then, use the session option in the value of the SessionOption parameter of the New-PSSession or Invoke-Command cmdlets.

Les valeurs définies lors de la création de la session sont prioritaires par rapport aux valeurs définies dans la $PSSessionOption variable de préférence et la configuration de session.The values set when creating the session take precedence over the values set in the $PSSessionOption preference variable and the session configuration.

Par exemple :For example:

$o = New-PSSessionOption -OutputBufferingMode Drop
New-PSSession -SessionOption $o

Pour modifier le mode de mise en mémoire tampon de sortie d’une session PSSession lors de la déconnexion, utilisez le paramètre OutputBufferingMode de l’applet de commande Disconnect-PSSession .To change the output buffering mode of a PSSession when disconnecting, use the OutputBufferingMode parameter of the Disconnect-PSSession cmdlet.

Par exemple :For example:

Disconnect-PSSession -OutputBufferingMode Drop

Pour modifier le mode de mise en mémoire tampon de sortie d’une session PSSession lors de la reconnexion, utilisez le paramètre OutputBufferingMode de l' New-PSSessionOption applet de commande pour créer une option de session avec la valeur Drop .To change the output buffering mode of a PSSession when reconnecting, use the OutputBufferingMode parameter of the New-PSSessionOption cmdlet to create a session option with a value of Drop . Ensuite, utilisez l’option de session dans la valeur du paramètre SessionOption de Connect-PSSession ou Receive-PSSession .Then, use the session option in the value of the SessionOption parameter of Connect-PSSession or Receive-PSSession.

Par exemple :For example:

$o = New-PSSessionOption -OutputBufferingMode Drop
Connect-PSSession -ComputerName Server01 -Name Test -SessionOption $o

Pour créer une configuration de session avec le mode de suppression de la mise en mémoire tampon de sortie par défaut, utilisez le paramètre OutputBufferingMode de l' New-PSTransportOption applet de commande pour créer un objet d’option de transport avec la valeur Drop .To create a session configuration with a default output buffering mode of Drop , use the OutputBufferingMode parameter of the New-PSTransportOption cmdlet to create a transport option object with a value of Drop . Ensuite, utilisez l’option de transport dans la valeur du paramètre TransportOption de Register-PSSessionConfiguration .Then, use the transport option in the value of the TransportOption parameter of Register-PSSessionConfiguration.

Par exemple :For example:

$o = New-PSTransportOption -OutputBufferingMode Drop
Register-PSSessionConfiguration -Name Test -TransportOption $o

Pour modifier le mode de mise en mémoire tampon de sortie par défaut d’une configuration de session, utilisez le paramètre OutputBufferingMode de l' New-PSTransportOption applet de commande pour créer une option de transport avec la valeur Drop .To change the default output buffering mode of a session configuration, use the OutputBufferingMode parameter of the New-PSTransportOption cmdlet to create a transport option with a value of Drop . Ensuite, utilisez l’option de transport dans la valeur du paramètre SessionOption de Set-PSSessionConfiguration .Then, use the Transport option in the value of the SessionOption parameter of Set-PSSessionConfiguration.

Par exemple :For example:

$o = New-PSTransportOption -OutputBufferingMode Drop
Set-PSSessionConfiguration -Name Test -TransportOption $o

Déconnexion de sessions de bouclageDisconnecting loopback sessions

Les sessions de bouclage, ou sessions locales, sont des sessions PSSession qui proviennent et se terminent sur le même ordinateur.Loopback sessions, or local sessions, are PSSessions that originate and terminate on the same computer. Comme les autres sessions PSSession, les sessions de bouclage actives sont conservées sur l’ordinateur à l’extrémité distante de la connexion (ordinateur local), ce qui vous permet de vous déconnecter et de vous reconnecter aux sessions de bouclage.Like other PSSessions, active loopback sessions are maintained on the computer on the remote end of the connection (the local computer), so you can disconnect from and reconnect to loopback sessions.

Par défaut, les sessions de bouclage sont créées avec un jeton de sécurité réseau qui n’autorise pas les commandes exécutées dans la session à accéder à d’autres ordinateurs.By default, loopback sessions are created with a network security token that doesn't permit commands run in the session to access other computers. Vous pouvez vous reconnecter aux sessions de bouclage qui ont un jeton de sécurité réseau à partir de n’importe quelle session sur l’ordinateur local ou sur un ordinateur distant.You can reconnect to loopback sessions that have a network security token from any session on the local computer or a remote computer.

Toutefois, si vous utilisez le paramètre EnableNetworkAccess de l’applet de commande, New-PSSession Enter-PSSession ou Invoke-Command , la session de bouclage est créée avec un jeton de sécurité interactif.However, if you use the EnableNetworkAccess parameter of the New-PSSession, Enter-PSSession, or Invoke-Command cmdlet, the loopback session is created with an interactive security token. Le jeton interactif active les commandes qui s’exécutent dans la session de bouclage pour récupérer des données à partir d’autres ordinateurs.The interactive token enables commands that run in the loopback session to get data from other computers.

Vous pouvez déconnecter des sessions de bouclage avec des jetons interactifs, puis vous y reconnecter à partir de la même session ou d’une autre session sur le même ordinateur.You can disconnect loopback sessions with interactive tokens and then reconnect to them from the same session or a different session on the same computer. Toutefois, pour empêcher les accès malveillants, vous pouvez vous reconnecter aux sessions de bouclage avec des jetons interactifs uniquement à partir de l’ordinateur sur lequel ils ont été créés.However, to prevent malicious access, you can reconnect to loopback sessions with interactive tokens only from the computer on which they were created.

En attente de travaux dans les sessions déconnectéesWaiting for jobs in disconnected sessions

L' Wait-Job applet de commande attend qu’une tâche se termine, puis retourne à l’invite de commandes ou à la commande suivante.The Wait-Job cmdlet waits until a job completes and then returns to the command prompt or the next command. Par défaut, Wait-Job retourne si la session dans laquelle un travail est en cours d’exécution est déconnectée.By default, Wait-Job returns if the session in which a job is running is disconnected. Pour demander Wait-Job à l’applet de commande d’attendre que la session soit reconnectée, à l’état ouvert , utilisez le paramètre force .To direct the Wait-Job cmdlet to wait until the session is reconnected, in the Opened state, use the Force parameter. Pour plus d’informations, consultez Wait-Job.For more information, see Wait-Job.

Sessions fiables et déconnexion non intentionnelleRobust sessions and unintentional disconnection

Une session PSSession peut être déconnectée de manière involontaire en raison d’une panne de l’ordinateur ou d’un réseau.A PSSession might be unintentionally disconnected because of a computer failure or network outage. PowerShell tente de récupérer la session PSSession, mais son succès dépend de la gravité et de la durée de la cause.PowerShell attempts to recover the PSSession, but its success depends upon the severity and duration of the cause.

L’état d’une session PSSession déconnectée de manière involontaire peut être interrompu ou fermé , mais il peut également être déconnecté .The state of an unintentionally disconnected PSSession might be Broken or Closed , but it might also be Disconnected . Si la valeur de l' État est Disconnected , vous pouvez utiliser les mêmes techniques pour gérer la session PSSession que si la session était déconnectée intentionnellement.If the value of State is Disconnected , you can use the same techniques to manage the PSSession as you would if the session were disconnected intentionally. Par exemple, vous pouvez utiliser la Connect-PSSession cmdlet pour vous reconnecter à la session et l' Receive-PSSession applet de commande pour obtenir les résultats des commandes exécutées pendant la déconnexion de la session.For example, you can use the Connect-PSSession cmdlet to reconnect to the session and the Receive-PSSession cmdlet to get results of commands that ran while the session was disconnected.

Si vous fermez (quittez) la session dans laquelle une session PSSession a été créée alors que les commandes s’exécutent dans la session PSSession, PowerShell maintient la session PSSession à l’état déconnecté sur l’ordinateur distant.If you close (exit) the session in which a PSSession was created while commands are running in the PSSession, PowerShell maintains the PSSession in the Disconnected state on the remote computer. Si vous fermez (quittez) la session dans laquelle une session PSSession a été créée, mais qu’aucune commande n’est en cours d’exécution dans la session PSSession, PowerShell ne tente pas de maintenir la session PSSession.If you close (exit) the session in which a PSSession was created, but no commands are running in the PSSession, PowerShell doesn't attempt to maintain the PSSession.

Voir aussiSee also

about_Jobsabout_Jobs

about_Remoteabout_Remote

about_Remote_Variablesabout_Remote_Variables

about_PSSessionsabout_PSSessions

about_Session_Configurationsabout_Session_Configurations

Connect-PSSessionConnect-PSSession

Disconnect-PSSessionDisconnect-PSSession

Get-PSSessionGet-PSSession

Receive-PSSessionReceive-PSSession

Invoke-CommandInvoke-Command