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