Partager via


about_Session_Configurations

Description courte

Décrit les configurations de session qui déterminent les utilisateurs pouvant se connecter à distance à l'ordinateur et les commandes qu'ils peuvent exécuter.

Description longue

Une configuration de session, également appelée « point de terminaison » est un groupe de paramètres sur l’ordinateur local qui définissent l’environnement pour les sessions PowerShell créées lorsque des utilisateurs distants ou locaux se connectent à PowerShell sur l’ordinateur local.

Les administrateurs de l’ordinateur peuvent utiliser des configurations de session pour protéger l’ordinateur et définir des environnements personnalisés pour les utilisateurs qui se connectent à l’ordinateur.

Les administrateurs peuvent également utiliser des configurations de session pour déterminer les autorisations requises pour se connecter à distance à l’ordinateur. Par défaut, seuls les membres du groupe Administrateurs ont l’autorisation d’utiliser la configuration de session pour se connecter à distance, mais vous pouvez modifier les paramètres par défaut pour autoriser tous les utilisateurs ou utilisateurs sélectionnés à se connecter à distance à votre ordinateur.

À compter de PowerShell 3.0, vous pouvez utiliser un fichier de configuration de session pour définir les éléments d’une configuration de session. Cette fonctionnalité permet de personnaliser facilement les sessions sans écrire de code et de découvrir les propriétés d’une configuration de session. Pour créer un fichier de configuration de session, utilisez l’applet de commande New-PSSessionConfiguration. Pour plus d’informations sur les fichiers de configuration de session, consultez about_Session_Configuration_Files.

Les configurations de session sont une fonctionnalité des services Web pour la gestion (WS-Management) basée sur PowerShell à distance. Ils sont utilisés uniquement lorsque vous utilisez les applets de commande New-PSSession, Invoke-Command ou Enter-PSSession pour vous connecter à un ordinateur distant.

Remarque : Pour gérer les configurations de session, démarrez PowerShell avec l’option « Exécuter en tant qu’administrateur ».

À propos des configurations de session

Chaque session PowerShell utilise une configuration de session. Cela inclut les sessions persistantes que vous créez à l’aide des applets de commande New-PSSession ou Enter-PSSession, ainsi que les sessions temporaires créées par PowerShell lorsque vous utilisez le paramètre ComputerName d’une applet de commande qui utilise la technologie de communication à distance basée sur WS-Management, comme Invoke-Command.

Les administrateurs peuvent utiliser des configurations de session pour protéger les ressources de l’ordinateur et créer des environnements personnalisés pour les utilisateurs qui se connectent à l’ordinateur. Par exemple, vous pouvez utiliser une configuration de session pour limiter la taille des objets reçus par l’ordinateur dans la session, définir le mode de langue de la session et spécifier les applets de commande, les fournisseurs et les fonctions disponibles dans la session.

En configurant le descripteur de sécurité d’une configuration de session, vous déterminez qui peut utiliser la configuration de session pour se connecter à l’ordinateur. Les utilisateurs doivent avoir l’autorisation d’exécuter une configuration de session pour l’utiliser dans une session. Si un utilisateur n’a pas les autorisations requises pour utiliser l’une des configurations de session sur un ordinateur, l’utilisateur ne peut pas se connecter à distance à l’ordinateur.

Par défaut, seuls les administrateurs de l’ordinateur ont l’autorisation d’utiliser les configurations de session par défaut. Toutefois, vous pouvez modifier les descripteurs de sécurité pour autoriser tout le monde, personne ou uniquement les utilisateurs sélectionnés à utiliser les configurations de session sur votre ordinateur.

Configurations de session intégrées

PowerShell 3.0 inclut des configurations de session intégrées nommées Microsoft.PowerShell et Microsoft.PowerShell.Workflow. Sur les ordinateurs exécutant des versions 64 bits de Windows, PowerShell fournit également Microsoft.PowerShell32, une configuration de session 32 bits.

La configuration de session Microsoft.PowerShell est utilisée par défaut pour les sessions, autrement dit, lorsqu’une commande permettant de créer une session n’inclut pas le paramètre ConfigurationName de l’applet de commande New-PSSession, Enter-PSSession ou Invoke-Command.

Les descripteurs de sécurité pour les configurations de session par défaut autorisent uniquement les membres du groupe Administrateurs sur l’ordinateur local à les utiliser. Par conséquent, seuls les membres du groupe Administrateurs peuvent se connecter à l’ordinateur à distance, sauf si vous modifiez les paramètres par défaut.

Vous pouvez modifier les configurations de session par défaut à l’aide de la variable de préférence $PSSessionConfigurationName. Pour plus d'informations, consultez about_Preference_Variables.

Affichage des configurations de session sur l’ordinateur local

Pour obtenir les configurations de session sur votre ordinateur local, utilisez l’applet de commande Get-PSSessionConfiguration.

Par exemple, entrez :

PS C:> Get-PSSessionConfiguration | Format-List -Property Name, Permission

Name       : microsoft.powershell
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell.workflow
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell32
Permission : BUILTIN\Administrators AccessAllowed

L’objet de configuration de session est développé dans PowerShell 3.0 pour afficher les propriétés de la configuration de session configurées à l’aide d’un fichier de configuration de session.

Par exemple, pour afficher toutes les propriétés d’un objet de configuration de session, tapez :

PS C:> Get-PSSessionConfiguration | Format-List -Property *

Vous pouvez également utiliser le fournisseur WSMan dans PowerShell pour afficher les configurations de session. Le fournisseur WSMan crée un lecteur WSMAN : dans votre session.

Dans le lecteur WSMAN : les configurations de session se trouvent dans le nœud plug-in. (Toutes les configurations de session se trouvent dans le nœud plug-in, mais il existe des éléments dans le nœud plug-in qui ne sont pas des configurations de session.)

Par exemple, pour afficher les configurations de session sur l’ordinateur local, tapez :

PS C:> dir wsman:\localhost\plugin\microsoft*

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Affichage des configurations de session sur un ordinateur distant

Pour afficher les configurations de session sur un ordinateur distant, utilisez l’applet de commande Connect-WSMan pour ajouter une note pour l’ordinateur distant au lecteur WSMAN : lecteur sur votre ordinateur local, puis utilisez le lecteur WSMAN : pour afficher les configurations de session.

Par exemple, la commande suivante ajoute un nœud pour l’ordinateur distant Server01 au lecteur WSMAN : sur l’ordinateur local.

PS C:> Connect-WSMan server01.corp.fabrikam.com

Une fois la commande terminée, vous pouvez accéder au nœud de l’ordinateur Server01 pour afficher les configurations de session.

Par exemple :

PS C:> cd wsman:

PS WSMan:> dir

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01.corp.fabrikam.com                    Container

PS WSMan:> dir server01\plugin\

WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Pl
ugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Modification du descripteur de sécurité d’une configuration de session

Dans Windows Server 2012 et versions ultérieures de Windows Server, les configurations de session intégrées sont activées pour les utilisateurs distants par défaut. Dans d’autres versions prises en charge de Windows, vous devez modifier les descripteurs de sécurité des configurations de session pour autoriser l’accès à distance.

Pour activer l’accès à distance aux configurations de session sur l’ordinateur, utilisez l’applet de commande Enable-PSRemoting.

En outre, par défaut, seuls les membres du groupe Administrateurs sur l’ordinateur disposent d’une autorisation d’exécution pour les configurations de session par défaut, mais vous pouvez modifier les descripteurs de sécurité sur les configurations de session par défaut et sur toutes les configurations de session que vous créez.

Pour autoriser d’autres utilisateurs à se connecter à distance à l’ordinateur, utilisez l’applet de commande Set-PSSessionConfiguration pour ajouter des autorisations « Exécuter » pour ces utilisateurs aux descripteurs de sécurité des configurations de session Microsoft.PowerShell et Microsoft.PowerShell32.

Par exemple, la commande suivante ouvre une page de propriétés qui vous permet de modifier le descripteur de sécurité pour la configuration de session par défaut Microsoft.PowerShell.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Pour refuser à tout le monde l’autorisation de toutes les configurations de session sur l’ordinateur, utilisez l’applet de commande Disable-PSSessionConfiguration. Par exemple, la commande suivante désactive les configurations de session par défaut sur l’ordinateur.

PS C:> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

Pour empêcher les utilisateurs distants de se connecter à l’ordinateur, mais autoriser les utilisateurs locaux à se connecter, utilisez l’applet de commande Disable-PSRemoting. Disable-PSRemoting ajoute une entrée « Network_Deny_All » à toutes les configurations de session sur l’ordinateur.

PS C:> Disable-PSRemoting

Pour permettre aux utilisateurs distants d’utiliser toutes les configurations de session sur l’ordinateur, utilisez l’applet de commande Enable-PSRemoting ou Enable-PSSessionConfiguration. Par exemple, la commande suivante permet l’accès à distance aux configurations de session intégrées.

PS C:> Enable-PSSessionConfiguration -name Microsoft.Power*

Pour apporter d’autres modifications au descripteur de sécurité d’une configuration de session, utilisez l’applet de commande Set-PSSessionConfiguration. Utilisez le paramètre SecurityDescriptorSDDL pour envoyer une valeur de chaîne SDDL. Utilisez le paramètre ShowSecurityDescriptorUI pour afficher une feuille de propriétés d’interface utilisateur qui vous aide à créer un SDDL.

Par exemple :

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Création d’une configuration de session

Pour créer une configuration de session sur l’ordinateur local, utilisez l’applet de commande Register-PSSessionConfiguration. Pour définir la nouvelle configuration de session, vous pouvez utiliser un assembly C#, un script PowerShell et les paramètres de l’applet de commande Register-PSSessionConfiguration.

Par exemple, la commande suivante crée une configuration de session identique à la configuration de session Microsoft.PowerShell, sauf qu’elle limite les données reçues d’une commande distante à 20 mégaoctets (Mo). (La valeur par défaut est de 50 Mo).

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

Lorsque vous créez une configuration de session, vous pouvez la gérer à l’aide des autres applets de commande de configuration de session, et elle apparaît dans le lecteur WSMAN :

Pour plus d’informations, consultez Register-PSSessionConfiguration.

Suppression d’une configuration de session

Pour supprimer une configuration de session de l’ordinateur local, utilisez l’applet de commande Unregister-PSSessionConfiguration. Par exemple, la commande suivante supprime la configuration de session NewConfig de l’ordinateur.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Pour plus d’informations, consultez Unregister-PSSessionConfiguration.

Restauration d’une configuration de session

Pour restaurer accidentellement une configuration de session par défaut supprimée (non inscrite), utilisez l’applet de commande Enable-PSRemoting.

L’applet de commande Enable-PSRemoting recrée toutes les configurations de sessions par défaut qui n’existent pas sur l’ordinateur. Il ne remplace pas ou ne modifie pas les valeurs de propriété des configurations de session existantes.

Pour restaurer les valeurs de propriété d’origine d’une configuration de session par défaut, utilisez l’option Unregister-PSSessionConfiguration pour supprimer la configuration de session, puis utilisez l’applet de commande Enable-PSRemoting pour la recréer.

Sélection d’une configuration de session

Pour sélectionner une configuration de session particulière pour une session, utilisez le paramètre ConfigurationName de New-PSSession, Enter-PSSession ou Invoke-Command.

Par exemple, cette commande utilise l’applet de commande New-PSSession pour démarrer une session PSSession sur l’ordinateur Server01. La commande utilise le paramètre ConfigurationName pour sélectionner la configuration WithProfile sur l’ordinateur Server01.

PS C:> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

Cette commande réussit uniquement si l’utilisateur actuel dispose de l’autorisation d’utiliser la configuration de session WithProfile ou peut fournir les informations d’identification d’un utilisateur disposant des autorisations requises.

Vous pouvez également utiliser la variable de préférence $PSSessionConfigurationName pour modifier la configuration de session par défaut sur l’ordinateur. Pour plus d’informations sur la variable de préférence $PSSessionConfigurationName, consultez about_Preference_Variables.

MOTS-CLÉS

about_Endpoints about_SessionConfigurations

Voir aussi