RUBRIQUE about_PSSession_Details DESCRIPTION COURTE Fournit des informations détaillées sur les sessions Windows PowerShell et leur rôle dans les commandes distantes. DESCRIPTION LONGUE Une session est un environnement dans lequel Windows PowerShell s'exécute. Une session est créée pour vous dès que vous démarrez Windows PowerShell. Vous pouvez créer des sessions supplémentaires, appelées " sessions Windows PowerShell " ou " sessions PSSession ", sur votre ordinateur ou un autre ordinateur. Contrairement aux sessions que Windows PowerShell crée pour vous, vous contrôlez et gérez les sessions PSSession que vous créez. Les sessions PSSession jouent un rôle important dans l'informatique à distance. Lorsque vous créez une session PSSession connectée à un ordinateur distant, Windows PowerShell établit une connexion permanente à cet ordinateur pour prendre en charge la session PSSession. Vous pouvez utiliser la session PSSession pour exécuter une série de commandes, de fonctions et de scripts qui partagent des données. Cette rubrique fournit des informations détaillées sur les sessions et sessions PSSession dans Windows PowerShell. Pour plus d'informations sur les tâches que vous pouvez effectuer avec les sessions, consultez about_PSSessions. À PROPOS DES SESSIONS Techniquement, une session est un environnement d'exécution dans lequel Windows PowerShell s'exécute. Chaque session inclut une instance du moteur System.Management.Automation et un programme hôte dans lequel Windows PowerShell s'exécute. L'hôte peut être la console Windows PowerShell familière ou un autre programme exécutant des commandes, tel que Cmd.exe ou un programme conçu pour héberger Windows PowerShell, tel que Windows PowerShell ISE (Integrated Scripting Environment). Du point de vue de Windows, une session est un processus Windows sur l'ordinateur cible. Chaque session est configurée indépendamment. Elle inclut ses propres propriétés, sa propre stratégie d'exécution et ses propres profils. L'environnement qui existe lorsque la session est créée persiste pendant toute sa durée de vie, même si vous modifiez l'environnement sur l'ordinateur. Toutes les sessions sont créées dans une portée globale, même les sessions que vous créez dans un script. Vous ne pouvez exécuter qu'une commande (ou qu'un pipeline de commandes) à la fois dans une session. Une seconde commande exécutée de façon synchrone (une à la fois) attend jusqu'à quatre minutes que la première commande s'achève. Une seconde commande exécutée de façon asynchrone (simultanément) échoue. À PROPOS DES SESSIONS PSSESSION Une session est créée dès que vous démarrez Windows PowerShell. De plus, Windows PowerShell crée des sessions temporaires pour exécuter des commandes individuelles. Toutefois, vous pouvez également créer des sessions (appelées " sessions Windows PowerShell " ou " sessions PSSession ") que vous contrôlez et gérez. Les sessions PSSession sont essentielles aux commandes distantes. Si vous utilisez le paramètre ComputerName des applets de commande Invoke-Command ou Enter-PSSession, Windows PowerShell établit une session temporaire pour exécuter la commande, puis ferme la session dès que la commande ou la session interactive est terminée. Toutefois, si vous utilisez l'applet de commande New-PSSession pour créer une session PSSession, Windows PowerShell établit une session persistante sur l'ordinateur distant, dans laquelle vous pouvez exécuter plusieurs commandes ou sessions interactives. Les sessions PSSession que vous créez restent ouvertes et disponibles jusqu'à ce que vous les supprimiez ou jusqu'à ce que vous fermiez la session dans laquelle elles ont été créées. Lorsque vous créez une session PSSession sur un ordinateur distant, le système crée un processus PowerShell sur cet ordinateur et établit une connexion entre l'ordinateur local et le processus de l'ordinateur distant. Lorsque vous créez une session PSSession sur l'ordinateur local, le nouveau processus et les connexions sont créés sur cet ordinateur. QUAND AI-JE BESOIN D'UNE SESSION PSSESSION ? Les applets de commande Invoke-Command et Enter-PSSession ont les paramètres ComputerName et Session. Vous pouvez utiliser l'un ou l'autre de ces paramètres pour exécuter une commande distante. Utilisez le paramètre ComputerName pour exécuter une commande simple ou une série de commandes non liées sur un ou plusieurs ordinateurs. Pour exécuter des commandes qui partagent des données, vous avez besoin d'une connexion permanente à l'ordinateur distant. Dans ce cas, créez une session PSSession, puis utilisez le paramètre Session pour exécuter des commandes dans la session PSSession. De nombreuses autres applets de commande obtenant des données d'ordinateurs distants, telles que Get-Process, Get-Service, Get-EventLog et Get-WmiObject ne disposent que du paramètre ComputerName. Elles utilisent d'autres technologies que la communication à distance Windows PowerShell pour recueillir des données à distance. Ces applets de commande n'ont pas de paramètre Session, mais vous pouvez utiliser l'applet de commande Invoke-Command pour les exécuter dans une session PSSession. COMMENT CRÉER UNE SESSION PSSESSION ? Pour créer une session PSSession, utilisez l'applet de commande New-PSSession. Vous pouvez utiliser New-PSSession pour créer une session PSSession sur un ordinateur local ou distant. PUIS-JE CRÉER UNE SESSION PSSESSION SUR N'IMPORTE QUEL ORDINATEUR ? Pour créer une session PSSession connectée à un ordinateur distant, l'ordinateur doit être configuré pour la communication à distance dans Windows PowerShell. L'utilisateur actuel doit être membre du groupe Administrateurs sur l'ordinateur distant ou doit pouvoir fournir les informations d'identification d'un membre du groupe Administrateurs. Pour plus d'informations, consultez about_Remote_Requirements. PUIS-JE VOIR LES SESSIONS PSSESSION CRÉÉES PAR D'AUTRES PERSONNES SUR MON ORDINATEUR ? Non. Vous ne pouvez obtenir et gérer que les sessions PSSession que vous avez créées dans la session active. Vous ne pouvez pas voir les sessions PSSession que d'autres ont créées, même si elles exécutent des commandes sur l'ordinateur local. PUIS-JE EXÉCUTER UNE TÂCHE EN ARRIÈRE-PLAN DANS UNE SESSION PSSESSION ? Oui. Une tâche en arrière-plan est une commande qui s'exécute de façon asynchrone en arrière-plan sans interagir avec la session active. Lorsque vous envoyez une commande pour démarrer une tâche, la commande retourne un objet de traitement, mais la tâche continue de fonctionner à l'arrière-plan jusqu'à ce qu'elle soit terminée. Pour démarrer une tâche en arrière-plan sur un ordinateur local, utilisez la commande Start-Job. Vous pouvez exécuter la tâche en arrière-plan dans une connexion temporaire (en utilisant le paramètre ComputerName) ou dans une session PSSession (en utilisant le paramètre Session). Pour démarrer une tâche en arrière-plan sur un ordinateur distant, utilisez l'applet de commande Invoke-Command avec son paramètre AsJob ou l'applet de commande Invoke-Command pour exécuter une commande Start-Job sur un ordinateur distant. Lorsque vous utilisez le paramètre AsJob, vous pouvez utiliser les paramètres ComputerName ou Session. Lorsque vous utilisez Invoke-Command pour exécuter une commande Start-Job, vous devez exécuter la commande dans une session PSSession. Si vous utilisez le paramètre ComputerName, Windows PowerShell met fin à la connexion lorsque l'objet de traitement est retourné et la tâche est interrompue. Pour plus d'informations, consultez about_jobs. PUIS-JE EXÉCUTER UNE SESSION INTERACTIVE ? Oui. Pour démarrer une session interactive avec un ordinateur distant, utilisez l'applet de commande Enter-PSSession. Dans une session interactive, les commandes que vous tapez s'exécutent sur l'ordinateur distant comme si vous les y aviez tapées directement. Vous pouvez exécuter une session interactive dans une session temporaire (en utilisant le paramètre ComputerName) ou dans une session PSSession (en utilisant le paramètre Session). Si vous utilisez une session PSSession, celle-ci conserve les données des commandes précédentes et toutes les données générées pendant la session interactive pour les utiliser dans des commandes ultérieures. Lorsque vous mettez fin à la session interactive, la session PSSession reste ouverte et disponible. Pour plus d'informations, consultez Enter-PSSession et Exit-PSSession. DOIS-JE SUPPRIMER LES SESSIONS PSSESSION ? Oui. Une session PSSession est un processus, à savoir un environnement autonome qui utilise de la mémoire et d'autres ressources, même lorsque vous ne l'utilisez pas. Lorsque vous avez fini de travailler avec une session PSSession, supprimez-la. Si vous créez plusieurs sessions PSSession, fermez celles que vous n'utilisez pas et conservez les autres. Pour supprimer des sessions PSSession, utilisez l'applet de commande Remove-PSSession. Elle supprime les sessions PSSession et libère toutes les ressources qu'elles utilisaient. Vous pouvez également utiliser le paramètre TimeOut de New-PSSession pour fermer une session PSSession inactive après un intervalle que vous spécifiez. Pour plus d'informations, consultez New-PSSession. Si vous ne supprimez pas la session PSSession ou si vous ne définissez pas de délai d'expiration, la session PSSession reste ouverte et disponible jusqu'à ce que vous la fermiez, jusqu'à ce que vous fermiez la session dans laquelle elle a été créée ou jusqu'à ce que vous quittiez Windows PowerShell. Toutefois, une session PSSession sur un ordinateur distant sera déconnectée si l'ordinateur distant ne répond pas pendant quatre minutes. (L'ordinateur distant est configuré pour envoyer une impulsion toutes les trois minutes.) Si vous enregistrez un objet PSSession dans une variable, puis supprimez la session PSSession ou la laissez expirer, la variable contient toujours l'objet PSSession, mais la session PSSession est inactive et ne peut pas être utilisée, ni réparée. TOUTES LES SESSIONS ET SESSIONS PSSESSION SONT-ELLES IDENTIQUES ? Non. Les développeurs peuvent créer des sessions personnalisées incluant seulement certains fournisseurs et certaines applets de commande. Si une commande fonctionne dans une session, mais pas dans une autre, ce peut être parce que la session est restreinte. VOIR AUSSI about_Jobs about_PSSessions about_Remote about_Remote_Requirements Invoke-Command New-PSSession Get-PSSession Remove-PSSession Enter-PSSession Exit-PSSession