Connect-PSSession
Se reconnecte aux sessions déconnectées.
Syntaxe
Connect-PSSession
-Name <String[]>
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Connect-PSSession
[-Session] <PSSession[]>
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Connect-PSSession
-ComputerName <String[]>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-InstanceId <Guid[]>
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Connect-PSSession
-ComputerName <String[]>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-Name <String[]>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Connect-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri[]>
[-AllowRedirection]
-InstanceId <Guid[]>
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Connect-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri[]>
[-AllowRedirection]
[-Name <String[]>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Connect-PSSession
-InstanceId <Guid[]>
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Connect-PSSession
[-ThrottleLimit <Int32>]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande connect-PSSession
connect-PSSession pouvez vous connecter à n’importe quelle session déconnectée démarrée par le même utilisateur. Celles-ci incluent celles qui ont été démarrées ou déconnectées d’autres sessions sur d’autres ordinateurs.
Toutefois, session Connect-PSSession ne peut pas se connecter à des sessions interrompues ou fermées, ou des sessions interactives démarrées à l’aide de l’applet de commande Enter-PSSession. Vous ne pouvez pas également connecter des sessions à des sessions démarrées par d’autres utilisateurs, sauf si vous pouvez fournir les informations d’identification de l’utilisateur qui a créé la session.
Pour plus d’informations sur la fonctionnalité Sessions déconnectées, consultez about_Remote_Disconnected_Sessions.
Cette applet de commande a été introduite dans Windows PowerShell 3.0.
Exemples
Exemple 1 : Reconnecter à une session
PS C:\> Connect-PSSession -ComputerName Server01 -Name ITTask
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
4 ITTask Server01 Opened ITTasks Available
Cette commande se reconnecte à la session ITTask sur l’ordinateur Server01.
La sortie indique que la commande a réussi.
Le d’état
Exemple 2 : Effet de la déconnexion et de la reconnexion
PS C:\> Get-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backups Localhost Opened Microsoft.PowerShell Available
PS C:\> Get-PSSession | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backups Localhost Disconnected Microsoft.PowerShell None
PS C:\> Get-PSSession | Connect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backups Localhost Opened Microsoft.PowerShell Available
Cet exemple montre l’effet de la déconnexion, puis de la reconnexion à une session.
La première commande utilise l’applet de commande Get-PSSession. Sans le paramètre ComputerName, la commande obtient uniquement les sessions créées dans la session active.
La sortie indique que la commande obtient la session Sauvegardes sur l’ordinateur local.
Le d’état
La deuxième commande utilise l’applet de commande get-PSSession
La troisième commande utilise l’applet de commande get-PSSession
Si vous utilisez l’applet de commande Connect-PSSession sur une session qui n’est pas déconnectée, la commande n’affecte pas la session et ne génère aucune erreur.
Exemple 3 : Série de commandes dans un scénario d’entreprise
The administrator starts by creating a sessions on a remote computer and running a script in the session.The first command uses the **New-PSSession** cmdlet to create the ITTask session on the Server01 remote computer. The command uses the *ConfigurationName* parameter to specify the ITTasks session configuration. The command saves the sessions in the $s variable.
PS C:\> $s = New-PSSession -ComputerName Server01 -Name ITTask -ConfigurationName ITTasks
The second command **Invoke-Command** cmdlet to start a background job in the session in the $s variable. It uses the *FilePath* parameter to run the script in the background job.
PS C:\> Invoke-Command -Session $s {Start-Job -FilePath \\Server30\Scripts\Backup-SQLDatabase.ps1}
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
2 Job2 Running True Server01 \\Server30\Scripts\Backup...
The third command uses the Disconnect-PSSession cmdlet to disconnect from the session in the $s variable. The command uses the *OutputBufferingMode* parameter with a value of Drop to prevent the script from being blocked by having to deliver output to the session. It uses the *IdleTimeoutSec* parameter to extend the session time-out to 15 hours.When the command is completed, the administrator locks her computer and goes home for the evening.
PS C:\> Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Disconnected ITTasks None
Later that evening, the administrator starts her home computer, logs on to the corporate network, and starts Windows PowerShell. The fourth command uses the Get-PSSession cmdlet to get the sessions on the Server01 computer. The command finds the ITTask session.The fifth command uses the **Connect-PSSession** cmdlet to connect to the ITTask session. The command saves the session in the $s variable.
PS C:\> Get-PSSession -ComputerName Server01 -Name ITTask
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Disconnected ITTasks None
PS C:\> $s = Connect-PSSession -ComputerName Server01 -Name ITTask
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Opened ITTasks Available
The sixth command uses the **Invoke-Command** cmdlet to run a Get-Job command in the session in the $s variable. The output shows that the job finished successfully.The seventh command uses the **Invoke-Command** cmdlet to run a Receive-Job command in the session in the $s variable in the session. The command saves the results in the $BackupSpecs variable.The eighth command uses the **Invoke-Command** cmdlet to runs another script in the session. The command uses the value of the $BackupSpecs variable in the session as input to the script.
PS C:\> Invoke-Command -Session $s {Get-Job}
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
2 Job2 Completed True Server01 \\Server30\Scripts\Backup...
PS C:\> Invoke-Command -Session $s {$BackupSpecs = Receive-Job -JobName Job2}
PS C:\> Invoke-Command -Session $s {\\Server30\Scripts\New-SQLDatabase.ps1 -InitData $BackupSpecs.Initialization}
The ninth command disconnects from the session in the $s variable.The administrator closes Windows PowerShell and closes the computer. She can reconnect to the session on the next day and check the script status from her work computer.
PS C:\> Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Disconnected ITTasks None
Cette série de commandes montre comment l’applet de commande connect-PSSession
Paramètres
-AllowRedirection
Indique que cette applet de commande autorise la redirection de cette connexion vers un AUTRE URI.
Lorsque vous utilisez le paramètre ConnectionURI, la destination distante peut retourner une instruction pour rediriger vers un AUTRE URI. Par défaut, Windows PowerShell ne redirige pas les connexions, mais vous pouvez utiliser ce paramètre pour lui permettre de rediriger la connexion.
Vous pouvez également limiter le nombre de fois où la connexion est redirigée en modifiant la valeur d’option de session MaximumConnectionRedirectionCount. Utilisez le paramètre MaximumRedirection de l’applet de commande New-PSSessionOption ou définissez la propriété MaximumConnectionRedirectionCount de la variable de préférence $PSSessionOption. La valeur par défaut est 5.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ApplicationName
Spécifie le nom d’une application. Cette applet de commande se connecte uniquement aux sessions qui utilisent l’application spécifiée.
Entrez le segment de nom d’application de l’URI de connexion.
Par exemple, dans l’URI de connexion suivant, le nom de l’application est WSMan : https://localhost:5985/WSMAN
.
Le nom de l’application d’une session est stocké dans la propriété Runspace.ConnectionInfo.AppName de la session.
La valeur de ce paramètre est utilisée pour sélectionner et filtrer des sessions. Elle ne modifie pas l’application utilisée par la session.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Authentication
Spécifie le mécanisme utilisé pour authentifier les informations d’identification de l’utilisateur dans la commande pour se reconnecter à la session déconnectée. Les valeurs acceptables pour ce paramètre sont les suivantes :
- Faire défaut
- Basique
- Credssp
- Digérer
- Kerberos
- Négocier
- NegotiateWithImplicitCredential
La valeur par défaut est Default.
Pour plus d’informations sur les valeurs de ce paramètre, consultez AuthenticationMechanism Enumeration dans msdn library.
Attention : l’authentification CredSSP (Credential Security Support Provider), dans laquelle les informations d’identification de l’utilisateur sont transmises à un ordinateur distant à authentifier, est conçue pour les commandes qui nécessitent une authentification sur plusieurs ressources, telles que l’accès à un partage réseau distant. Ce mécanisme augmente le risque de sécurité de l’opération à distance. Si l’ordinateur distant est compromis, les informations d’identification qui lui sont transmises peuvent être utilisées pour contrôler la session réseau.
Type: | AuthenticationMechanism |
Valeurs acceptées: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-CertificateThumbprint
Spécifie le certificat de clé publique numérique (X509) d’un compte d’utilisateur autorisé à se connecter à la session déconnectée. Entrez l’empreinte numérique du certificat.
Les certificats sont utilisés dans l’authentification basée sur les certificats client. Ils ne peuvent être mappés qu’à des comptes d’utilisateur locaux. Ils ne fonctionnent pas avec les comptes de domaine.
Pour obtenir une empreinte numérique de certificat, utilisez une commande Get-Item ou Get-ChildItem dans le lecteur Windows PowerShell Cert : .
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ComputerName
Spécifie les ordinateurs sur lesquels les sessions déconnectées sont stockées. Les sessions sont stockées sur l’ordinateur qui se trouve côté serveur ou à la fin de réception d’une connexion. La valeur par défaut est l’ordinateur local.
Tapez le nom NetBIOS, une adresse IP ou un nom de domaine complet d’un ordinateur. Les caractères génériques ne sont pas autorisés. Pour spécifier l’ordinateur local, tapez le nom de l’ordinateur, localhost ou un point (.)
Type: | String[] |
Alias: | Cn |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ConfigurationName
Se connecte uniquement aux sessions qui utilisent la configuration de session spécifiée.
Entrez un nom de configuration ou l’URI de ressource complet pour une configuration de session.
Si vous spécifiez uniquement le nom de configuration, l’URI de schéma suivant est ajouté : https://schemas.microsoft.com/powershell
.
Le nom de configuration d’une session est stocké dans la propriété ConfigurationName de la session.
La valeur de ce paramètre est utilisée pour sélectionner et filtrer des sessions. Elle ne modifie pas la configuration de session utilisée par la session.
Pour plus d’informations sur les configurations de session, consultez about_Session_Configurations.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ConnectionUri
Spécifie les URI des points de terminaison de connexion pour les sessions déconnectées.
L’URI doit être complet. Le format de cette chaîne est le suivant :
\<Transport\>://\<ComputerName\>:\<Port\>/\<ApplicationName\>
La valeur par défaut est la suivante :
https://localhost:5985/WSMAN
Si vous ne spécifiez pas d’URI de connexion, vous pouvez utiliser les paramètres UseSSL et Port pour spécifier les valeurs d’URI de connexion.
Les valeurs valides pour le segment Transport
Si l’ordinateur de destination redirige la connexion vers un autre URI, Windows PowerShell empêche la redirection, sauf si vous utilisez le paramètre AllowRedirection dans la commande.
Type: | Uri[] |
Alias: | URI, CU |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Credential
Spécifie un compte d’utilisateur autorisé à se connecter à la session déconnectée. La valeur par défaut est l’utilisateur actuel.
Tapez un nom d’utilisateur, tel que User01 ou Domain01\User01. Vous pouvez également entrer un objet PSCredential, tel qu’un objet généré par l’applet de commande Get-Credential. Si vous tapez un nom d’utilisateur, cette applet de commande vous invite à entrer un mot de passe.
Type: | PSCredential |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Id
Spécifie les ID des sessions déconnectées. Le paramètre ID fonctionne uniquement lorsque la session déconnectée a été précédemment connectée à la session active.
Ce paramètre est valide, mais pas effectif, lorsque la session est stockée sur l’ordinateur local, mais n’a pas été connectée à la session active.
Type: | Int32[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-InstanceId
Spécifie les ID d’instance des sessions déconnectées.
L’ID d’instance est un GUID qui identifie de manière unique un psSession sur un ordinateur local ou distant.
L’ID d’instance est stocké dans la propriété InstanceID du PSSession.
Type: | Guid[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Name
Spécifie les noms conviviaux des sessions déconnectées.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Port
Spécifie le port réseau sur l’ordinateur distant utilisé pour se reconnecter à la session. Pour vous connecter à un ordinateur distant, l’ordinateur distant doit être à l’écoute sur le port utilisé par la connexion. Les ports par défaut sont 5985, qui est le port WinRM pour HTTP et 5986, qui est le port WinRM pour HTTPS.
Avant d’utiliser un autre port, vous devez configurer l’écouteur WinRM sur l’ordinateur distant pour écouter sur ce port. Pour configurer l’écouteur, tapez les deux commandes suivantes à l’invite Windows PowerShell :
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
N’utilisez pas le paramètre de port
Type: | Int32 |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Session
Spécifie les sessions déconnectées. Entrez une variable qui contient les objets PSSession ou une commande qui crée ou obtient les objets PSSession, tels qu’une commande Get-PSSession.
Type: | PSSession[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-SessionOption
Spécifie les options avancées de la session.
Entrez un objet SessionOption
Les valeurs par défaut des options sont déterminées par la valeur de la variable de préférence $PSSessionOption, si elle est définie. Sinon, les valeurs par défaut sont établies par les options définies dans la configuration de session.
Les valeurs d’option de session sont prioritaires sur les valeurs par défaut pour les sessions définies dans la variable de préférence $PSSessionOption et dans la configuration de session. Toutefois, ils ne sont pas prioritaires sur les valeurs maximales, les quotas ou les limites définis dans la configuration de session.
Pour obtenir une description des options de session qui incluent les valeurs par défaut, consultez New-PSSessionOption. Pour plus d’informations sur la variable de préférence $PSSessionOption, consultez about_Preference_Variables. Pour plus d’informations sur les configurations de session, consultez about_Session_Configurations.
Type: | PSSessionOption |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ThrottleLimit
Spécifie le nombre maximal de connexions simultanées qui peuvent être établies pour exécuter cette commande. Si vous omettez ce paramètre ou entrez une valeur de 0, la valeur par défaut 32 est utilisée.
La limite de limitation s’applique uniquement à la commande actuelle, et non à la session ou à l’ordinateur.
Type: | Int32 |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-UseSSL
Indique que cette applet de commande utilise le protocole SSL (Secure Sockets Layer) pour se connecter à la session déconnectée. Par défaut, SSL n’est pas utilisé.
WS-Management chiffre tout le contenu Windows PowerShell transmis sur le réseau. Le paramètre UseSSL est une protection supplémentaire qui envoie les données sur une connexion HTTPS au lieu d’une connexion HTTP.
Si vous utilisez ce paramètre, mais que SSL n’est pas disponible sur le port utilisé pour la commande, la commande échoue.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger une session (psSession) vers cette applet de commande.
Sorties
Cette applet de commande retourne un objet qui représente la session à laquelle elle s’est reconnectée.
Notes
connect-PSSession se reconnecte uniquement aux sessions déconnectées, c’est-à-dire les sessions qui ont la valeur Disconnected pour la propriété d’état. Seules les sessions connectées aux ordinateurs qui exécutent Windows PowerShell 3.0 ou version ultérieure peuvent être déconnectées et reconnectées. Si vous utilisez connect-PSSession sur une session qui n’est pas déconnectée, la commande n’affecte pas la session et ne génère pas d’erreurs.
Les sessions de bouclage déconnectées avec des jetons interactifs, qui sont créées à l’aide du paramètre EnableNetworkAccess, ne peuvent être reconnectées qu’à partir de l’ordinateur sur lequel la session a été créée. Cette restriction protège l’ordinateur contre l’accès malveillant.
La valeur de la propriété
State d’un PSSessionest relative à la session active. Par conséquent, une valeur de déconnecté signifie que le PSSession n’est pas connecté à la session active. Toutefois, cela ne signifie pas que le PSSession est déconnecté de toutes les sessions. Il peut être connecté à une autre session. Pour déterminer si vous pouvez vous connecter ou vous reconnecter à la session, utilisez la propriété Availability. Une valeur Availability none indique que vous pouvez vous connecter à la session. La valeur Busy indique que vous ne pouvez pas vous connecter au PSSession
, car elle est connectée à une autre session. Pour plus d’informations sur les valeurs de la propriété State des sessions, consultez 'énumération RunspaceState dans la bibliothèque MSDN.
Pour plus d’informations sur les valeurs de la propriété Availability des sessions, consultez RunspaceAvailability Enumeration dans msdn library.
Vous ne pouvez pas modifier la valeur de délai d’inactivité d’une PSSession
lorsque vous vous connectez auPSSession sessionOption. Le paramètre de Connect-PSSession prend un objetSessionOption qui a une valeurIdleTimeout . Toutefois, la valeurIdleTimeout de l’objet SessionOptionet la valeur IdleTimeout de la variable $PSSessionOption sont ignorées lors de la connexion à unpsSession .Vous pouvez définir et modifier le délai d’inactivité d’un PSSession
lorsque vous créez lePSSession , à l’aide des applets de commande New-PSSession ouInvoke-Command , et lorsque vous vous déconnectez despsSession. La propriété
IdleTimeout d’un PSSessionest essentielle pour les sessions déconnectées, car elle détermine la durée pendant laquelle une session déconnectée est conservée sur l’ordinateur distant. Les sessions déconnectées sont considérées comme inactives à partir du moment où elles sont déconnectées, même si les commandes s’exécutent dans la session déconnectée.
Liens associés
- Disconnect-PSSession
- Enter-PSSession
- Exit-PSSession
- Get-PSSession
- Get-PSSessionConfiguration
- New-PSSession
- New-PSSessionOption
- New-PSTransportOption
- Receive-PSSession
- Register-PSSessionConfiguration
- Remove-PSSession
- about_PSSessions
- about_Remote
- about_Remote_Disconnected_Sessions
- about_Session_Configurations