Partager via


Enter-PSSession

Démarre une session interactive avec un ordinateur distant.

Syntax

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-Port <Int32>]
     [-UseSSL]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [[-Session] <PSSession>]
     [<CommonParameters>]
Enter-PSSession
     [[-ConnectionUri] <Uri>]
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-AllowRedirection]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-InstanceId <Guid>]
     [<CommonParameters>]
Enter-PSSession
     [[-Id] <Int32>]
     [<CommonParameters>]
Enter-PSSession
     [-Name <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMId] <Guid>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-ContainerId] <String>
     [-ConfigurationName <String>]
     [-RunAsAdministrator]
     [<CommonParameters>]

Description

L’applet Enter-PSSession de commande démarre une session interactive avec un seul ordinateur distant. Pendant la session, les commandes que vous tapez s’exécutent sur l’ordinateur distant, comme si vous tapiez directement sur l’ordinateur distant. Vous ne pouvez avoir qu'une seule session interactive à la fois.

En règle générale, vous utilisez le paramètre ComputerName pour spécifier le nom de l’ordinateur distant. Toutefois, vous pouvez également utiliser une session que vous créez à l’aide de l’applet New-PSSession de commande pour la session interactive. Toutefois, vous ne pouvez pas utiliser les applets de commande ou Connect-PSSessionReceive-PSSession les Disconnect-PSSessionapplets de commande pour vous déconnecter ou se reconnecter à une session interactive.

Pour mettre fin à la session interactive et se déconnecter de l’ordinateur distant, utilisez l’applet Exit-PSSession de commande ou tapez exit.

Exemples

Exemple 1 : Démarrer une session interactive

PS C:\> Enter-PSSession
[localhost]: PS C:\>

Cette commande démarre une session interactive sur l'ordinateur local. L'invite de commandes change pour vous indiquer que vous exécutez à présent les commandes dans une autre session.

Les commandes que vous entrez s'exécutent dans la nouvelle session. Les résultats sont retournés à la session par défaut sous forme de texte.

Exemple 2 : Utiliser une session interactive

La première commande utilise l’applet Enter-PSSession de commande pour démarrer une session interactive avec Server01, un ordinateur distant. Au démarrage de la session, l’invite de commandes change pour inclure le nom de l’ordinateur.

La deuxième commande obtient le processus PowerShell et redirige la sortie vers le Process.txt fichier. La commande est envoyée à l’ordinateur distant et le fichier est enregistré sur l’ordinateur distant.

La troisième commande utilise le mot clé Exit pour mettre fin à la session interactive et fermer la connexion. La quatrième commande confirme que le fichier Process.txt se trouve sur l’ordinateur distant. Une Get-ChildItem commande (« dir ») sur l’ordinateur local ne peut pas trouver le fichier.

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
PS C:\> dir C:\ps-test\Process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\Process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\Process.txt

Cette commande montre comment utiliser une session interactive avec un ordinateur distant.

Exemple 3 : Utiliser le paramètre Session

PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>

Ces commandes utilisent le paramètre Session de l’exécution de Enter-PSSession la session interactive dans une session PowerShell existante (PSSession).

Exemple 4 : Démarrer une session interactive et spécifier les paramètres port et informations d’identification

PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>

Cette commande démarre une session interactive sur l'ordinateur Server01. Il utilise le paramètre Port pour spécifier le port et le paramètre Credential pour spécifier le compte d’un utilisateur autorisé à se connecter à l’ordinateur distant.

Exemple 5 : Arrêter une session interactive

PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>

Cet exemple montre comment démarrer et arrêter une session interactive. La première commande utilise l’applet Enter-PSSession de commande pour démarrer une session interactive avec l’ordinateur Server01.

La deuxième commande utilise l’applet Exit-PSSession de commande pour mettre fin à la session. Vous pouvez également utiliser le mot clé quitter pour mettre fin à la session interactive. Exit-PSSession et Exit ont le même effet.

Paramètres

-AllowRedirection

Autorise la redirection de cette connexion vers un autre URI (Uniform Resource Identifier). Par défaut, la redirection n'est pas autorisée.

Lorsque vous utilisez le paramètre Connecter ionURI, la destination distante peut retourner une instruction pour rediriger vers un autre URI. Par défaut, 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 de l’option De session Maximum Connecter ionRedirectionCount. Utilisez le paramètre MaximumRedirection de l’applet New-PSSessionOption de commande ou définissez la propriété Maximum Connecter ionRedirectionCount de la $PSSessionOption variable de préférence. La valeur par défaut est 5.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Spécifie le segment de nom d'application de l'URI de connexion. Utilisez ce paramètre pour spécifier le nom de l’application lorsque vous n’utilisez pas le paramètre Connecter ionURI dans la commande.

La valeur par défaut est la valeur de la $PSSessionApplicationName variable de préférence sur l’ordinateur local. Si cette variable de préférence n'est pas définie, la valeur par défaut est WSMAN. Cette valeur convient pour la plupart des utilisations. Pour plus d’informations, consultez about_Preference_Variables.

Le service WinRM utilise le nom de l’application pour sélectionner un écouteur pour traiter la demande de connexion. La valeur de ce paramètre doit correspondre à la valeur de la propriété URLPrefix d’un écouteur sur l’ordinateur distant.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

Spécifie le mécanisme permettant d'authentifier les informations d'identification de l'utilisateur. Les valeurs valides pour ce paramètre sont :

  • Par défaut
  • De base
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

La valeur par défaut est Default.

L’authentification CredSSP est disponible uniquement dans Windows Vista, Windows Server 2008 et versions ultérieures du système d’exploitation Windows.

Pour plus d’informations sur les valeurs de ce paramètre, consultez Enum AuthenticationMechanism.

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é lié à l'opération distante. Si l'ordinateur distant n'est pas fiable, les informations d'identification qui lui sont passées peuvent être utilisées pour contrôler la session réseau.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Spécifie le certificat de clé publique numérique (X509) d'un compte d'utilisateur qui a l'autorisation d'exécuter cette action. Entrez l’empreinte numérique du certificat.

Les certificats sont utilisés dans l'authentification par certificat client. Ils peuvent être mappés uniquement aux comptes d'utilisateur locaux ; ils ne fonctionnent pas avec les comptes de domaine.

Pour obtenir un certificat, utilisez le ou Get-ChildItem la Get-Item commande dans le lecteur PowerShell Cert : .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Spécifie un nom d’ordinateur. Cette applet de commande démarre une session interactive avec l’ordinateur distant spécifié. Entrez uniquement un nom d'ordinateur. La valeur par défaut est l'ordinateur local.

Tapez le nom NetBIOS, l'adresse IP ou le nom de domaine complet de l'ordinateur. Vous pouvez également diriger un nom d’ordinateur vers Enter-PSSession.

Pour utiliser une adresse IP dans la valeur du paramètre ComputerName , la commande doit inclure le paramètre Credential . En outre, l'ordinateur doit être configuré pour le transport HTTPS ou l'adresse IP de l'ordinateur distant doit être incluse dans la liste TrustedHosts pour WinRM de l'ordinateur local. Pour obtenir des instructions sur l’ajout d’un nom d’ordinateur à la liste TrustedHosts, consultez « How to Add a Computer to the Trusted Host List » dans about_Remote_Troubleshooting.

Remarque

Sur le système d’exploitation Windows, pour inclure l’ordinateur local dans la valeur du paramètre ComputerName , vous devez démarrer PowerShell avec l’option Exécuter en tant qu’administrateur.

Type:String
Aliases:Cn
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

Spécifie la configuration de session utilisée pour la session interactive.

Entrez un nom de configuration ou l'URI de ressource complet d'une configuration de session. Si vous spécifiez uniquement le nom de configuration, l’URI de schéma suivant est prédéfini : http://schemas.microsoft.com/powershell.

La configuration d'une session se trouve sur l'ordinateur distant. Si la configuration de session spécifiée n'existe pas sur l'ordinateur distant, la commande échoue.

La valeur par défaut est la valeur de la $PSSessionConfigurationName variable de préférence sur l’ordinateur local. Si cette variable de préférence n'est pas définie, la valeur par défaut est Microsoft.PowerShell. Pour plus d’informations, consultez about_Preference_Variables.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConnectionUri

Spécifie un URI qui définit le point de terminaison de connexion de la session. 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 :

http://localhost:5985/WSMAN

Si vous ne spécifiez pas d’Connecter ionURI, vous pouvez utiliser les paramètres UseSSL, ComputerName, Port et ApplicationName pour spécifier les valeurs Connecter ionURI.

Les valeurs valides du segment Transport de l'URI sont HTTP et HTTPS. Si vous spécifiez un URI de connexion avec un segment de transport, mais que vous ne spécifiez pas de port, la session est créée à l’aide de ports standard : 80 pour HTTP et 443 pour HTTPS. Pour utiliser les ports par défaut pour la communication à distance PowerShell, spécifiez le port 5985 pour HTTP ou 5986 pour HTTPS.

Si l’ordinateur de destination redirige la connexion vers un autre URI, PowerShell empêche la redirection, sauf si vous utilisez le paramètre AllowRedirection dans la commande.

Type:Uri
Aliases:URI, CU
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ContainerId

Spécifie l’ID d’un conteneur.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Spécifie un compte d’utilisateur qui a l’autorisation d’exécuter cette action. La valeur par défaut est l’utilisateur actuel.

Tapez un nom d’utilisateur, tel que User01 ou Domain01\User01, ou entrez un objet PSCredential généré par l’applet Get-Credential de commande. Si vous tapez un nom d’utilisateur, vous êtes invité à entrer le mot de passe.

Les informations d’identification sont stockées dans un objet PSCredential et le mot de passe est stocké en tant que SecureString.

Remarque

Pour plus d’informations sur la protection des données SecureString , consultez Comment secure is SecureString ?.

Type:PSCredential
Position:1
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableNetworkAccess

Indique que cette applet de commande ajoute un jeton de sécurité interactif aux sessions de bouclage. Le jeton interactif vous permet d'exécuter des commandes dans la session de bouclage qui obtiennent des données à partir d'autres ordinateurs. Par exemple, vous pouvez exécuter une commande dans la session qui copie les fichiers XML d'un ordinateur distant vers l'ordinateur local.

Une session de bouclage est une session PSSession qui provient et se termine sur le même ordinateur. Pour créer une session de bouclage, omettez le paramètre ComputerName ou définissez sa valeur sur . (dot), localhost ou nom de l’ordinateur local.

Par défaut, les sessions de bouclage sont créées à l’aide d’un jeton réseau, ce qui peut ne pas fournir l’autorisation suffisante pour s’authentifier auprès des ordinateurs distants.

Le paramètre EnableNetworkAccess est efficace uniquement dans les sessions de bouclage. Si vous utilisez EnableNetworkAccess lorsque vous créez une session sur un ordinateur distant, la commande réussit, mais le paramètre est ignoré.

Vous pouvez également autoriser l’accès à distance dans une session de bouclage à l’aide de la valeur CredSSP du paramètre d’authentification , qui délègue les informations d’identification de session à d’autres ordinateurs.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Spécifie l'ID d'une session existante. Enter-PSSession utilise la session spécifiée pour la session interactive.

Pour rechercher l’ID d’une session, utilisez l’applet Get-PSSession de commande.

Type:Int32
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Spécifie l'ID d'instance d'une session existante. Enter-PSSession utilise la session spécifiée pour la session interactive.

L'ID d'instance est un GUID. Pour rechercher l’ID d’instance d’une session, utilisez l’applet de Get-PSSession commande. Vous pouvez également utiliser les paramètres Session, Name ou ID pour spécifier une session existante. Vous pouvez également utiliser le paramètre ComputerName pour démarrer une session temporaire.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Spécifie le nom convivial d'une session existante. Enter-PSSession utilise la session spécifiée pour la session interactive.

Si le nom que vous spécifiez correspond à plusieurs sessions, la commande échoue. Vous pouvez également utiliser les paramètres Session, InstanceID ou ID pour spécifier une session existante. Vous pouvez également utiliser le paramètre ComputerName pour démarrer une session temporaire.

Pour établir un nom convivial pour une session, utilisez le paramètre Name de l’applet New-PSSession de commande.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Port

Spécifie le port réseau sur l’ordinateur distant utilisé pour cette commande. Pour établir une connexion à 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 qu'il écoute sur ce port. Utilisez les commandes suivantes pour configurer l'écouteur :

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

N’utilisez pas le paramètre Port , sauf si vous devez. Le paramètre de port de la commande s'applique à tous les ordinateurs ou sessions sur lesquels la commande s'exécute. Un autre paramètre de port peut empêcher la commande de s'exécuter sur tous les ordinateurs.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsAdministrator

Indique que la session PSSession s’exécute en tant qu’administrateur.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Spécifie une session Windows PowerShell (PSSession) à utiliser pour la session interactive. Ce paramètre accepte un objet de session. Vous pouvez également utiliser les paramètres Name, InstanceID ou ID pour spécifier une session PSSession.

Entrez une variable qui contient un objet de session ou une commande qui crée ou obtient un objet de session, tel qu’une ou Get-PSSession une New-PSSession commande. Vous pouvez également diriger un objet de session vers Enter-PSSession. Vous ne pouvez envoyer qu’une seule session PSSession à l’aide de ce paramètre. Si vous entrez une variable qui contient plusieurs sessions PSSession, la commande échoue.

Lorsque vous utilisez Exit-PSSession ou la sortie mot clé, la session interactive se termine, mais la session PSSession que vous avez créée reste ouverte et disponible pour une utilisation.

Type:PSSession
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

Définit des options avancées pour la session. Entrez un objet SessionOption , tel qu’un objet que vous créez à l’aide de l’applet New-PSSessionOption de commande, ou une table de hachage dans laquelle les clés sont des noms d’options de session et les valeurs sont des valeurs d’option de session.

Les valeurs par défaut des options sont déterminées par la valeur de la $PSSessionOption variable de préférence, 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 $PSSessionOption variable de préférence et dans la configuration de session. Elles ne sont cependant 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, y compris les valeurs par défaut, consultez New-PSSessionOption. Pour plus d’informations sur la $PSSessionOption variable de préférence, consultez about_Preference_Variables. Pour plus d'informations sur les configurations de session, consultez about_Session_Configurations.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

Indique que cette applet de commande utilise le protocole SSL (Secure Sockets Layer) pour établir une connexion à l’ordinateur distant. 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
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMId

Spécifie l’ID d’une machine virtuelle.

Type:Guid
Aliases:VMGuid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Spécifie le nom d'un ordinateur virtuel.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Entrées

String

Vous pouvez diriger un nom d’ordinateur sous forme de chaîne vers cette applet de commande.

PSSession

Vous pouvez diriger un objet de session vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne pas de sortie.

Notes

Windows PowerShell inclut les alias suivants pour Enter-PSSession:

  • etsn

Pour vous connecter à un ordinateur distant, vous devez être membre du groupe Administrateurs sur l'ordinateur distant. Pour démarrer une session interactive sur l’ordinateur local, vous devez démarrer PowerShell avec l’option Exécuter en tant qu’administrateur .

Lorsque vous utilisez Enter-PSSession, votre profil utilisateur sur l’ordinateur distant est utilisé pour la session interactive. Les commandes du profil utilisateur distant, y compris les commandes permettant d’ajouter des modules PowerShell et de modifier l’invite de commandes, s’exécutent avant l’affichage de l’invite à distance.

Enter-PSSession utilise le paramètre de culture de l’interface utilisateur sur l’ordinateur local pour la session interactive. Pour rechercher la culture de l’interface utilisateur locale, utilisez la $UICulture variable automatique.

Enter-PSSession nécessite les Get-Commandapplets de commande , Out-Defaultet Exit-PSSession les applets de commande. Si ces applets de commande ne sont pas incluses dans la configuration de session sur l’ordinateur distant, les Enter-PSSession commandes échouent.

Contrairement Invoke-Commandà , qui analyse et interprète les commandes avant de les envoyer à l’ordinateur distant, Enter-PSSession envoie les commandes directement à l’ordinateur distant sans interprétation.

Si la session que vous souhaitez entrer est occupée à traiter une commande, il peut y avoir un délai avant que PowerShell ne réponde à la Enter-PSSession commande. Vous êtes connecté dès que la session est disponible. Pour annuler la Enter-PSSession commande, appuyez sur Ctrl+C.