Share via


about_Session_Configuration_Files

Mis à jour: août 2012

S'applique à: Windows PowerShell 3.0

RUBRIQUE

about_Session_Configuration_Files

DESCRIPTION COURTE

Décrit les fichiers de configuration de session qui peuvent être utilisés dans une configuration de session (ou « point de terminaison ») pour définir l'environnement des sessions basées sur cette configuration de session.

DESCRIPTION DÉTAILLÉE

Un « fichier de configuration de session » est un fichier texte, doté d'une extension de nom de fichier .pssc, qui contient une table de hachage des propriétés et valeurs de configuration d'une session. Vous pouvez utiliser un fichier de configuration de session pour spécifier les propriétés d'une configuration de session, et ainsi définir l'environnement des sessions Windows PowerShell® basées sur cette configuration de session.

Les fichiers de configuration de session facilitent la création de configurations de sessions personnalisées sans scripts ou assemblys C# complexes.

Une « configuration de session » ou « point de terminaison » est une collection de paramètres sur l'ordinateur local qui déterminent quels utilisateurs sont autorisés à créer des sessions sur l'ordinateur et quelles commandes peuvent être exécutées dans les sessions. Pour plus d'informations sur les configurations de sessions, consultez about_Session_Configurations (https://go.microsoft.com/fwlink/?LinkID=145152).

Les configurations de session ont été introduites dans Windows PowerShell 2.0. Les fichiers de configuration de session ont été introduits dans Windows PowerShell 3.0. Vous devez utiliser Windows PowerShell 3.0 pour inclure un fichier de configuration de session dans une configuration de session. En revanche, tous les paramètres définis dans la configuration de session s'appliquent aussi aux utilisateurs de Windows PowerShell 2.0 et des versions ultérieures.

CRÉATION DE SESSIONS PERSONNALISÉES

Vous pouvez personnaliser de nombreuses fonctionnalités d'une session Windows PowerShell en spécifiant les propriétés de la session dans une configuration de session. Vous pouvez personnaliser une session en développant un programme C# qui définit une instance d'exécution personnalisée, ou utiliser un fichier de configuration de session qui définit les propriétés des sessions créées avec la configuration de session.

Vous pouvez utiliser un fichier de configuration de session pour créer des sessions entièrement fonctionnelles pour les utilisateurs bénéficiant d'un niveau d'approbation élevé, des sessions verrouillées pour offrir un accès réduit ou des sessions dédiées à des tâches particulières qui contiennent uniquement les modules nécessaires pour ces tâches.

Par exemple, déterminez si les utilisateurs de la session pourront utiliser les éléments de langage Windows PowerShell, tels que les blocs de script, ou uniquement exécuter des commandes. Vous pouvez définir quelle version de Windows PowerShell peut s'exécuter dans la session, quels modules sont importés dans la session, et quels applets de commande, fonctions et alias sont disponibles pour les utilisateurs de la session.

CRÉATION D'UN FICHIER DE CONFIGURATION DE SESSION

La méthode la plus simple pour créer un fichier de configuration de session est d'utiliser l'applet de commande New-PSSessionConfiguration. Cette applet de commande génère un fichier présentant le format et la syntaxe appropriés, en plus de vérifier la plupart des valeurs de propriété.

Pour obtenir les descriptions détaillées des propriétés pouvant être définies dans un fichier de configuration de session, consultez la rubrique d'aide de l'applet de commande New-PSSessionConfigurationFile.

Pour créer un fichier de configuration de session avec les valeurs par défaut, tapez la commande suivante :Insérez le corps de la section ici.

        PS C:\> New-PSSessionConfigurationFile -Path .\Defaults.pssc

Pour ouvrir et afficher le fichier dans votre éditeur de texte par défaut, tapez la commande suivante :

        PS C:\> Invoke-Item -Path .\Defaults.pssc

Pour créer une configuration de session pour des sessions où les utilisateurs peuvent exécuter des commandes, mais pas utiliser d'autres éléments de langage Windows PowerShell, tapez :

        PS C:\> New-PSSessionConfigurationFile -LanguageMode NoLanguage -Path .\NoLanguage.pssc

Pour créer une configuration de session pour des sessions dans lesquelles les utilisateurs peuvent utiliser uniquement les applets de commande Get, tapez :

        PS C:\> New-PSSessionConfigurationFile -VisibleCmdlets Get-* -Path .\GetSessions.pssc

UTILISATION D'UN FICHIER DE CONFIGURATION DE SESSION

Vous pouvez inclure un fichier de configuration de session au moment où vous créez une configuration de session, ou l'ajouter plus tard à la configuration de session existante.

Pour inclure un fichier de configuration de session pendant la création d'une configuration de session, spécifiez le paramètre Path avec l'applet de commande Register-PSSessionConfiguration.

La commande suivante inclut le fichier NoLanguage.pssc quand elle crée la configuration de session NoLanguage.

      PS C:\> Register-PSSessionConfiguration -Name NoLanguage -Path .\NoLanguage.pssc

Pour ajouter un fichier de configuration de session à une configuration de session existante, spécifiez le paramètre Path avec l'applet de commande Set-PSSessionConfiguration. La modification s'applique à toutes les autres sessions qui sont créées avec la configuration de session une fois la commande exécutée.

La commande suivante ajoute le fichier NoLanguage.pssc à la configuration de session LockedDown.

      PS C:\> Set-PSSessionConfiguration -Name LockedDown -Path .\NoLanguage.pssc

Quand les utilisateurs créent une session avec la configuration de session LockedDown, ils peuvent exécuter des applets de commande, mais ils ne peuvent pas créer ou utiliser des variables, assigner des valeurs ou utiliser d'autres éléments de langage Windows PowerShell.

Par exemple, la commande suivante utilise l'applet de commande New-PSSession pour créer une session sur l'ordinateur local qui utilise la configuration de session LockedDown. La commande enregistre la session dans la variable $s. La liste ACL de la configuration de session détermine les utilisateurs autorisés à créer une session avec la configuration de session.

      PS C:\> $s = New-PSSession -ComputerName Srv01 -ConfigurationName LockedDown

La commande suivante utilise l'applet de commande Invoke-Command pour exécuter des commandes dans la session dans la variable $s. La première commande, qui exécute l'applet de commande Get-UICulture, s'exécute correctement. La deuxième commande, qui obtient la valeur de la variable $PSUICulture, échoue.

      PS C:\> Invoke-Command -Session $s {Get-UICulture}
      en-US

      PS C:\> Invoke-Command -Session $s {$PSUICulture}
      The syntax is not supported by this runspace. This might be because it is in no-language mode.
        + CategoryInfo          : ParserError: ($PSUICulture:String) [], ParseException
        + FullyQualifiedErrorId : ScriptsNotAllowed

MODIFICATION D'UN FICHIER DE CONFIGURATION DE SESSION

Pour modifier le fichier de configuration de session utilisé par une configuration de session, commencez par localiser la copie active de ce fichier.

Quand vous utilisez un fichier de configuration de session dans une configuration de session, Windows PowerShell crée une copie active du fichier et le stocke dans le répertoire $pshome\SessionConfig sur l'ordinateur local.

L'emplacement de la copie active du fichier de configuration de session est stocké dans la propriété ConfigFilePath de l'objet configuration de session.

La commande suivante obtient l'emplacement du fichier de configuration de session pour la configuration de session NoLanguage.

      PS C:\> (Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath
      C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

Vous pouvez modifier le fichier dans un éditeur de texte. Le fichier est modifié au moment de son enregistrement et est appliqué dans chaque nouvelle session basée sur la configuration de session.

VÉRIFICATION D'UN FICHIER DE CONFIGURATION DE SESSION

Veillez à vérifier tous les fichiers de configuration de session que vous modifiez manuellement. Si la syntaxe et les valeurs utilisées dans le fichier ne sont pas valides, les utilisateurs ne pourront pas créer de session à l'aide de la configuration de session.

Par exemple, la commande suivante vérifie le fichier de configuration de session actif de la configuration de session NoLanguage.

     PS C:\> Test-PSSessionConfigurationFile -Path C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

Vous pouvez utiliser l'applet de commande Test-PSSessionConfigurationFile pour vérifier tous les fichiers de configuration de session, y compris les fichiers créés par New-PSSessionConfiguration. Pour plus d'informations, consultez la rubrique d'aide de l'applet de commande Test-PSSessionConfigurationFile.

SUPPRESSION D'UN FICHIER DE CONFIGURATION DE SESSION

Vous ne pouvez pas supprimer en toute sécurité un fichier de configuration de session dans une configuration de session, mais vous pouvez remplacer le fichier existant par un autre fichier sans effet.Insérez le corps de la section ici.

Pour supprimer un fichier de configuration de session, créez un fichier de configuration de session contenant les paramètres par défaut, puis utilisez l'applet de commande Set-PSSessionConfiguration pour remplacer le fichier de configuration de session personnalisé par une version par défaut.

Par exemple, la commande suivante crée un fichier de configuration de session par défaut (Default) et remplace ensuite le fichier de configuration de session actif dans la configuration de session NoLanguage.

     PS C:\> New-PSSessionConfigurationFile -Path .\Default.pssc
     PS C:\> Set-PSSessionConfiguration -Name NoLanguage -Path .\Default.pssc

Après l'exécution de cette commande, la configuration de session NoLanguage fournit une prise en charge complète du langage (paramètre par défaut) dans toutes les sessions créées avec la configuration de session.

AFFICHAGE DES PROPRIÉTÉS D'UNE CONFIGURATION DE SESSION

Les objets configuration de session qui représentent des configurations de session utilisant des fichiers de configuration de session possèdent des propriétés supplémentaires qui facilitent la détection et l'analyse de la configuration de session. (Notez que le nom du type inclut une définition de vue formatée.)

      PS C:\> Get-PSSessionConfiguration NoLanguage | Get-Member

        TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration

      Name                          MemberType     Definition
      ----                          ----------     ----------
      Equals                        Method         bool Equals(System.Object obj)
      GetHashCode                   Method         int GetHashCode()
      GetType                       Method         type GetType()
      ToString                      Method         string ToString()
      Architecture                  NoteProperty   System.String Architecture=64
      Author                        NoteProperty   System.String Author=juneb
      AutoRestart                   NoteProperty   System.String AutoRestart=fals
      Capability                    NoteProperty   System.Object[] Capability=Sys
      CompanyName                   NoteProperty   System.String CompanyName=Unkn
      configfilepath                NoteProperty   System.String configfilepath=C
      Copyright                     NoteProperty   System.String Copyright=(c) 20
      Enabled                       NoteProperty   System.String Enabled=True
      ExactMatch                    NoteProperty   System.String ExactMatch=true
      ExecutionPolicy               NoteProperty   System.String ExecutionPolicy=
      Filename                      NoteProperty   System.String Filename=%windir
      GUID                          NoteProperty   System.String GUID=0c115179-ff
      ProcessIdleTimeoutSec         NoteProperty   System.String ProcessIdleTimeo
      IdleTimeoutms                 NoteProperty   System.String IdleTimeoutms=72
      lang                          NoteProperty   System.String lang=en-US
      LanguageMode                  NoteProperty   System.String LanguageMode=NoL
      MaxConcurrentCommandsPerShell NoteProperty   System.String MaxConcurrentCom
      MaxConcurrentUsers            NoteProperty   System.String MaxConcurrentUse
      MaxIdleTimeoutms              NoteProperty   System.String MaxIdleTimeoutms
      MaxMemoryPerShellMB           NoteProperty   System.String MaxMemoryPerShel
      MaxProcessesPerShell          NoteProperty   System.String MaxProcessesPerS
      MaxShells                     NoteProperty   System.String MaxShells=300
      MaxShellsPerUser              NoteProperty   System.String MaxShellsPerUser
      Name                          NoteProperty   System.String Name=NoLanguage
      PSVersion                     NoteProperty   System.String PSVersion=3.0
      ResourceUri                   NoteProperty   System.String ResourceUri=http
      RunAsPassword                 NoteProperty   System.String RunAsPassword=
      RunAsUser                     NoteProperty   System.String RunAsUser=
      SchemaVersion                 NoteProperty   System.String SchemaVersion=1.
      SDKVersion                    NoteProperty   System.String SDKVersion=1
      OutputBufferingMode           NoteProperty   System.String OutputBufferingM
      SessionType                   NoteProperty   System.String SessionType=Defa
      UseSharedProcess              NoteProperty   System.String UseSharedProcess
      SupportsOptions               NoteProperty   System.String SupportsOptions=
      xmlns                         NoteProperty   System.String xmlns=http://sch
      XmlRenderingType              NoteProperty   System.String XmlRenderingType
      Permission                    ScriptProperty System.Object Permission {get=

Les nouvelles propriétés facilitent la recherche des configurations de session. Par exemple, utilisez la propriété ExecutionPolicy pour rechercher une configuration de session qui prend en charge les sessions avec la stratégie d'exécution RemoteSigned. La propriété ExecutionPolicy est disponible uniquement pour les sessions qui utilisent des fichiers de configuration de session. Il est donc possible que la commande n'obtienne pas toutes les configurations de session concernées.

      PS C:\> Get-PSSessionConfiguration | where {$_.ExecutionPolicy -eq "RemoteSigned"}

La commande suivante obtient les configurations de session dans lesquelles RunAsUser est l'administrateur Exchange.

      PS C:\>  Get-PSSessionConfiguration | where {$_.RunAsUser -eq "Exchange01\Admin01"}

REMARQUE

Le type de session Empty vous permet de créer des sessions personnalisées avec les commandes choisies. Si vous n'ajoutez pas de modules, de fonctions ou de scripts à une session Empty, la session est limitée aux expressions et risque d'être inutilisable.

VOIR AUSSI

about_Session_Configurations

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration