Partager via


New-PSSessionConfigurationFile

Crée un fichier qui définit une configuration de session.

Syntaxe

New-PSSessionConfigurationFile
   [-Path] <String>
   [-SchemaVersion <Version>]
   [-Guid <Guid>]
   [-Author <String>]
   [-Description <String>]
   [-CompanyName <String>]
   [-Copyright <String>]
   [-SessionType <SessionType>]
   [-TranscriptDirectory <String>]
   [-RunAsVirtualAccount]
   [-RunAsVirtualAccountGroups <String[]>]
   [-MountUserDrive]
   [-UserDriveMaximumSize <Int64>]
   [-GroupManagedServiceAccount <String>]
   [-ScriptsToProcess <String[]>]
   [-RoleDefinitions <IDictionary>]
   [-RequiredGroups <IDictionary>]
   [-LanguageMode <PSLanguageMode>]
   [-ExecutionPolicy <ExecutionPolicy>]
   [-PowerShellVersion <Version>]
   [-ModulesToImport <Object[]>]
   [-VisibleAliases <String[]>]
   [-VisibleCmdlets <Object[]>]
   [-VisibleFunctions <Object[]>]
   [-VisibleExternalCommands <String[]>]
   [-VisibleProviders <String[]>]
   [-AliasDefinitions <IDictionary[]>]
   [-FunctionDefinitions <IDictionary[]>]
   [-VariableDefinitions <Object>]
   [-EnvironmentVariables <IDictionary>]
   [-TypesToProcess <String[]>]
   [-FormatsToProcess <String[]>]
   [-AssembliesToLoad <String[]>]
   [-Full]
   [<CommonParameters>]

Description

L’applet New-PSSessionConfigurationFile de commande crée un fichier de paramètres qui définissent une configuration de session et l’environnement des sessions créées à l’aide de la configuration de session. Pour utiliser le fichier dans une configuration de session, utilisez le paramètre Path des applets de commande ou Set-PSSessionConfiguration des Register-PSSessionConfiguration applets de commande.

Le fichier de configuration de session créé New-PSSessionConfigurationFile est un fichier texte lisible par l’homme qui contient une table de hachage des propriétés et des valeurs de configuration de session. Le fichier a une .pssc extension de nom de fichier.

Tous les paramètres sont New-PSSessionConfigurationFile facultatifs, à l’exception du paramètre Path . Si vous omettez un paramètre, la clé correspondante dans le fichier de configuration de session est commentée, sauf indication contraire dans la description du paramètre.

Une configuration de session, également appelée point de terminaison, est une collection de paramètres sur l’ordinateur local qui définissent l’environnement pour les sessions PowerShell (PSSessions) qui se connectent à l’ordinateur. Toutes les sessions PSSession utilisent une configuration de session. Pour spécifier une configuration de session particulière, utilisez le paramètre ConfigurationName des applets de commande qui créent une session, comme l’applet New-PSSession de commande.

Un fichier de configuration de session facilite la définition d’une configuration de session sans scripts complexes ni assemblys de code. Les paramètres du fichier sont utilisés avec le script de démarrage facultatif et tous les assemblys de la configuration de session.

Pour plus d’informations sur les configurations de session et les fichiers de configuration de session, consultez about_Session_Configurations et about_Session_Configuration_Files.

Cette applet de commande a été introduite dans PowerShell 3.0.

Exemples

Exemple 1 : Création et utilisation d’une session NoLanguage

Cet exemple montre comment créer et les effets de l’utilisation d’une session sans langue.

Procédez comme suit :

  1. Créez un fichier de configuration.
  2. Inscrivez la configuration.
  3. Créez une session qui utilise la configuration.
  4. Exécutez des commandes dans cette nouvelle session.

Pour exécuter les commandes de cet exemple, démarrez PowerShell à l’aide de l’option Exécuter en tant qu’administrateur. Cette option est nécessaire pour exécuter l’applet de Register-PSSessionConfiguration commande.

New-PSSessionConfigurationFile -Path .\NoLanguage.pssc -LanguageMode NoLanguage
Register-PSSessionConfiguration -Path .\NoLanguage.pssc -Name NoLanguage -Force
$NoLanguageSession = New-PSSession -ComputerName Srv01 -ConfigurationName NoLanguage
Invoke-Command -Session $NoLanguageSession -ScriptBlock {
  if ((Get-Date) -lt '1January2099') {'Before'} else {'After'}
}

The syntax is not supported by this runspace. This might be because it is in no-language mode.
    + CategoryInfo          : ParserError: (if ((Get-Date) ...') {'Before'}  :String) [], ParseException
    + FullyQualifiedErrorId : ScriptsNotAllowed
    + PSComputerName        : localhost

Dans cet exemple, Invoke-Command l’erreur échoue, car LanguageMode est défini sur NoLanguage.

Exemple 2 : Création et utilisation d’une session RestrictedLanguage

Cet exemple montre comment créer et les effets de l’utilisation d’une session sans langue.

Procédez comme suit :

  1. Créez un fichier de configuration.
  2. Inscrivez la configuration.
  3. Créez une session qui utilise la configuration.
  4. Exécutez des commandes dans cette nouvelle session.

Pour exécuter les commandes de cet exemple, démarrez PowerShell à l’aide de l’option Exécuter en tant qu’administrateur. Cette option est nécessaire pour exécuter l’applet de Register-PSSessionConfiguration commande.

New-PSSessionConfigurationFile -Path .\NoLanguage.pssc -LanguageMode RestrictedLanguage
Register-PSSessionConfiguration -Path .\NoLanguage.pssc -Name RestrictedLanguage -Force
$RestrictedSession = New-PSSession -ComputerName Srv01 -ConfigurationName RestrictedLanguage
Invoke-Command -Session $RestrictedSession -ScriptBlock {
  if ((Get-Date) -lt '1January2099') {'Before'} else {'After'}
}

Before

Dans cet exemple, la Invoke-Command réussite est due au fait que LanguageMode est défini sur RestrictedLanguage.

Exemple 3 : modification d’un fichier de configuration de session

Cet exemple montre comment modifier le fichier de configuration de session utilisé dans une session existante nommée « ITTasks ». Auparavant, ces sessions n’avaient que les modules principaux et un module ITTasks interne. L’administrateur souhaite ajouter le module PSScheduledJob aux sessions créées à l’aide de la configuration de session ITTasks.

New-PSSessionConfigurationFile -Path .\New-ITTasks.pssc -ModulesToImport Microsoft*, ITTasks, PSScheduledJob
Set-PSSessionConfiguration -Name ITTasks -Path .\New-ITTasks.pssc

Applet New-PSSessionConfigurationFile de commande pour créer un fichier de configuration de session qui importe les modules requis. L’applet Set-PSSessionConfiguration de commande remplace le fichier de configuration actuel par le nouveau. Cette nouvelle configuration affecte uniquement les nouvelles sessions créées après la modification. Les sessions « ITTasks » existantes ne sont pas affectées.

Exemple 4 : Modification d’un fichier de configuration de session

Cet exemple montre comment changer une configuration de session en modifiant la copie de la configuration de session active du fichier de configuration. Pour modifier la copie de configuration de session du fichier de configuration, vous devez disposer d’un accès contrôle total au fichier. Cela peut vous obliger à modifier les autorisations sur le fichier.

Dans ce scénario, nous voulons ajouter un nouvel alias pour l’applet Select-String de commande en modifiant le fichier de configuration actif.

L’exemple de code ci-dessous effectue les étapes suivantes pour apporter cette modification :

  1. Obtenez le chemin du fichier de configuration pour la session ITConfig.
  2. L’utilisateur modifie le fichier de configuration à l’aide de Notepad.exe pour modifier la valeur AliasDefinitions comme suit : AliasDefinitions = @(@{Name='slst';Value='Select-String'}).
  3. Testez le fichier de configuration mis à jour.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Utilisez le paramètre Verbose avec Test-PSSessionConfigurationFile pour afficher les erreurs détectées. L’applet de commande retourne $True si aucune erreur n’est détectée dans le fichier.

Exemple 5 : Créer un exemple de fichier de configuration

Cet exemple montre une New-PSSessionConfigurationFile commande qui utilise tous les paramètres d’applet de commande. Il est inclus pour illustrer le format d'entrée approprié de chaque paramètre.

Le SampleFile.pssc résultant est affiché dans la sortie.

$configSettings = @{
    Path = '.\SampleFile.pssc'
    SchemaVersion = '1.0.0.0'
    Author = 'User01'
    Copyright = '(c) Fabrikam Corporation. All rights reserved.'
    CompanyName = 'Fabrikam Corporation'
    Description = 'This is a sample file.'
    ExecutionPolicy = 'AllSigned'
    PowerShellVersion = '3.0'
    LanguageMode = 'FullLanguage'
    SessionType = 'Default'
    EnvironmentVariables = @{TESTSHARE='\\Test2\Test'}
    ModulesToImport = @{ModuleName='PSScheduledJob'; ModuleVersion='1.0.0.0'; GUID='50cdb55f-5ab7-489f-9e94-4ec21ff51e59'},'PSDiagnostics'
    AssembliesToLoad = 'System.Web.Services','FSharp.Compiler.CodeDom.dll'
    TypesToProcess = 'Types1.ps1xml','Types2.ps1xml'
    FormatsToProcess = 'CustomFormats.ps1xml'
    ScriptsToProcess = 'Get-Inputs.ps1'
    AliasDefinitions = @{Name='hlp';Value='Get-Help';Description='Gets help.';Options='AllScope'},
        @{Name='Update';Value='Update-Help';Description='Updates help';Options='ReadOnly'}
    FunctionDefinitions = @{Name='Get-Function';ScriptBlock={Get-Command -CommandType Function};Options='ReadOnly'}
    VariableDefinitions = @{Name='WarningPreference';Value='SilentlyContinue'}
    VisibleAliases = 'c*','g*','i*','s*'
    VisibleCmdlets = 'Get*'
    VisibleFunctions = 'Get*'
    VisibleProviders = 'FileSystem','Function','Variable'
    RunAsVirtualAccount = $true
    RunAsVirtualAccountGroups = 'Backup Operators'
}
New-PSSessionConfigurationFile @configSettings
Get-Content SampleFile.pssc

@{

# Version number of the schema used for this document
SchemaVersion = '1.0.0.0'

# ID used to uniquely identify this document
GUID = '1caeff7f-27ca-4360-97cf-37846f594235'

# Author of this document
Author = 'User01'

# Description of the functionality provided by these settings
Description = 'This is a sample file.'

# Company associated with this document
CompanyName = 'Fabrikam Corporation'

# Copyright statement for this document
Copyright = '(c) Fabrikam Corporation. All rights reserved.'

# Session type defaults to apply for this session configuration. Can be 'RestrictedRemoteServer' (recommended), 'Empty', or 'Default'
SessionType = 'Default'

# Directory to place session transcripts for this session configuration
# TranscriptDirectory = 'C:\Transcripts\'

# Whether to run this session configuration as the machine's (virtual) administrator account
RunAsVirtualAccount = $true

# Groups associated with machine's (virtual) administrator account
RunAsVirtualAccountGroups = 'Backup Operators'

# Scripts to run when applied to a session
ScriptsToProcess = 'Get-Inputs.ps1'

# User roles (security groups), and the role capabilities that should be applied to them when applied to a session
# RoleDefinitions = @{ 'CONTOSO\SqlAdmins' = @{ RoleCapabilities = 'SqlAdministration' }; 'CONTOSO\SqlManaged' = @{ RoleCapabilityFiles = 'C:\RoleCapability\SqlManaged.psrc' }; 'CONTOSO\ServerMonitors' = @{ VisibleCmdlets = 'Get-Process' } }

# Language mode to apply when applied to a session. Can be 'NoLanguage' (recommended), 'RestrictedLanguage', 'ConstrainedLanguage', or 'FullLanguage'
LanguageMode = 'FullLanguage'

# Execution policy to apply when applied to a session
ExecutionPolicy = 'AllSigned'

# Version of the PowerShell engine to use when applied to a session
PowerShellVersion = '3.0'

# Modules to import when applied to a session
ModulesToImport = @{
    'GUID' = '50cdb55f-5ab7-489f-9e94-4ec21ff51e59'
    'ModuleName' = 'PSScheduledJob'
    'ModuleVersion' = '1.0.0.0' }, 'PSDiagnostics'

# Aliases to make visible when applied to a session
VisibleAliases = 'c*', 'g*', 'i*', 's*'

# Cmdlets to make visible when applied to a session
VisibleCmdlets = 'Get*'

# Functions to make visible when applied to a session
VisibleFunctions = 'Get*'

# Providers to make visible when applied to a session
VisibleProviders = 'FileSystem', 'Function', 'Variable'

# Aliases to be defined when applied to a session
AliasDefinitions = @{
    'Description' = 'Gets help.'
    'Name' = 'hlp'
    'Options' = 'AllScope'
    'Value' = 'Get-Help' }, @{
    'Description' = 'Updates help'
    'Name' = 'Update'
    'Options' = 'ReadOnly'
    'Value' = 'Update-Help' }

# Functions to define when applied to a session
FunctionDefinitions = @{
    'Name' = 'Get-Function'
    'Options' = 'ReadOnly'
    'ScriptBlock' = {Get-Command -CommandType Function} }

# Variables to define when applied to a session
VariableDefinitions = @{
    'Name' = 'WarningPreference'
    'Value' = 'SilentlyContinue' }

# Environment variables to define when applied to a session
EnvironmentVariables = @{
    'TESTSHARE' = '\\Test2\Test' }

# Type files (.ps1xml) to load when applied to a session
TypesToProcess = 'Types1.ps1xml', 'Types2.ps1xml'

# Format files (.ps1xml) to load when applied to a session
FormatsToProcess = 'CustomFormats.ps1xml'

# Assemblies to load when applied to a session
AssembliesToLoad = 'System.Web.Services', 'FSharp.Compiler.CodeDom.dll'

}

Paramètres

-AliasDefinitions

Ajoute les alias spécifiés aux sessions qui utilisent la configuration de session. Entrez une table de hachage avec les clés suivantes :

  • Nom : nom de l’alias. Cette clé est obligatoire.
  • Valeur : commande que l’alias représente. Cette clé est obligatoire.
  • Description : chaîne de texte qui décrit l’alias. Cette clé est facultative.
  • Options : options d’alias. Cette clé est facultative. La valeur par défaut est Aucune. Les valeurs acceptables pour ce paramètre sont : None, ReadOnly, Constant, Private ou AllScope.

Par exemple : @{Name='hlp';Value='Get-Help';Description='Gets help';Options='ReadOnly'}

Type:IDictionary[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AssembliesToLoad

Spécifie les assemblys à charger dans les sessions qui utilisent la configuration de session.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Author

Spécifie l’auteur de la configuration de session ou du fichier de configuration. La valeur par défaut est l’utilisateur actuel. La valeur de ce paramètre est visible dans le fichier de configuration de session, mais il ne s'agit pas d'une propriété de l'objet de configuration de session.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CompanyName

Spécifie l’entreprise qui a créé la configuration de session ou le fichier de configuration. La valeur par défaut est Unknown. La valeur de ce paramètre est visible dans le fichier de configuration de session, mais il ne s'agit pas d'une propriété de l'objet de configuration de session.

Type:String
Position:Named
Valeur par défaut:Unknown
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Spécifie un droit d’auteur sur le fichier de configuration de session. La valeur de ce paramètre est visible dans le fichier de configuration de session, mais il ne s'agit pas d'une propriété de l'objet de configuration de session.

Si vous omettez ce paramètre, New-PSSessionConfigurationFile génère une instruction de copyright à l’aide de la valeur du paramètre Author .

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Description

Spécifie une description de la configuration de session ou du fichier de configuration de session. La valeur de ce paramètre est visible dans le fichier de configuration de session, mais il ne s'agit pas d'une propriété de l'objet de configuration de session.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-EnvironmentVariables

Ajoute des variables d'environnement à la session. Entrez une table de hachage dans laquelle les clés sont les noms des variables d'environnement, et les valeurs sont les valeurs des variables d'environnement.

Par exemple : EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

Type:IDictionary
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ExecutionPolicy

Spécifie la stratégie d'exécution des sessions qui utilisent la configuration de session. Si vous omettez ce paramètre, la valeur de la clé ExecutionPolicy dans le fichier de configuration de session est Restreinte. Pour plus d’informations sur les stratégies d’exécution dans PowerShell, consultez about_Execution_Policies.

Type:ExecutionPolicy
Valeurs acceptées:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-FormatsToProcess

Spécifie les fichiers de mise en forme (.ps1xml) qui s'exécutent dans les sessions qui utilisent la configuration de session. La valeur de ce paramètre doit être un chemin d’accès complet ou absolu des fichiers de mise en forme.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Full

Indique que cette opération inclut toutes les propriétés de configuration possibles dans le fichier de configuration de session.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-FunctionDefinitions

Ajoute les fonctions spécifiées aux sessions qui utilisent la configuration de session. Entrez une table de hachage avec les clés suivantes :

  • Nom : nom de la fonction. Cette clé est obligatoire.
  • ScriptBlock - Corps de la fonction. Entrez un bloc de script. Cette clé est obligatoire.
  • Options : options de fonction. Cette clé est facultative. La valeur par défaut est Aucune. Les valeurs acceptables pour ce paramètre sont : None, ReadOnly, Constant, Private ou AllScope.

Par exemple : @{Name='Get-PowerShellProcess';ScriptBlock={Get-Process PowerShell};Options='AllScope'}

Type:IDictionary[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-GroupManagedServiceAccount

Configure les sessions à l’aide de cette configuration de session pour s’exécuter dans le contexte du compte de service géré de groupe spécifié. L’ordinateur sur lequel cette configuration de session est inscrite doit avoir l’autorisation de demander le mot de passe gMSA pour que les sessions soient créées avec succès. Ce champ ne peut pas être utilisé avec le paramètre RunAsVirtualAccount .

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Guid

Spécifie un identificateur unique pour le fichier de configuration de session. Si vous omettez ce paramètre, New-PSSessionConfigurationFile génère un GUID pour le fichier. Pour créer un GUID dans PowerShell, tapez New-Guid.

Type:Guid
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-LanguageMode

Détermine les éléments du langage PowerShell autorisés dans les sessions qui utilisent cette configuration de session. Vous pouvez utiliser ce paramètre pour limiter les commandes que certains utilisateurs peuvent exécuter sur l'ordinateur.

Les valeurs valides pour ce paramètre sont :

  • FullLanguage : tous les éléments de langage sont autorisés.
  • ContrainteLanguage : les commandes qui contiennent des scripts à évaluer ne sont pas autorisées. Le mode ConstrainedLanguage restreint l'accès utilisateur aux types, objets ou méthodes Microsoft .NET Framework.
  • NoLanguage : les utilisateurs peuvent exécuter des applets de commande et des fonctions, mais ne sont pas autorisés à utiliser des éléments de langage, tels que des blocs de script, des variables ou des opérateurs.
  • RestrictedLanguage : les utilisateurs peuvent exécuter des applets de commande et des fonctions, mais ne sont pas autorisés à utiliser des blocs de script ou des variables à l’exception des variables autorisées suivantes : $PSCulture, , $PSUICulture, $True$False, et $Null. Les utilisateurs peuvent utiliser uniquement les opérateurs de comparaison de base (-eq, -gt, -lt). Les instructions d'assignation, les références de propriété et les appels de méthode ne sont pas autorisés.

La valeur par défaut du paramètre LanguageMode dépend de la valeur du paramètre SessionType .

  • Vide - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • Valeur par défaut - FullLanguage
Type:PSLanguageMode
Valeurs acceptées:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ModulesToImport

Spécifie les modules et les composants logiciels enfichables qui sont automatiquement importés dans les sessions qui utilisent la configuration de session.

Par défaut, seul le composant logiciel enfichable Microsoft.PowerShell.Core est importé dans des sessions à distance, mais sauf si les applets de commande sont exclues, les utilisateurs peuvent utiliser les Import-Module applets de commande et Add-PSSnapin les applets de commande pour ajouter des modules et des composants logiciels enfichables à la session.

Chaque module ou composant logiciel enfichable inclus dans la valeur de ce paramètre peut être représenté par une chaîne ou une table de hachage. Une chaîne de module se compose uniquement du nom du module ou du composant logiciel enfichable. Une table de hachage de module peut inclure des clés ModuleName, ModuleVersion et GUID . Seule la clé ModuleName est requise.

Par exemple, la valeur suivante se compose d'une chaîne et d'une table de hachage. Toutes les combinaisons de chaînes et de tables de hachage, dans n'importe quel ordre, sont valides.

'TroubleshootingPack', @{ModuleName='PSDiagnostics'; ModuleVersion='1.0.0.0';GUID='c61d6278-02a3-4618-ae37-a524d40a7f44'}

La valeur du paramètre ModulesToImport de l’applet Register-PSSessionConfiguration de commande est prioritaire sur la valeur de la clé ModulesToImport dans le fichier de configuration de session.

Type:Object[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-MountUserDrive

Configure les sessions qui utilisent cette configuration de session pour exposer PSDrive User: . Les lecteurs utilisateur sont uniques pour chaque utilisateur connecté et permettent aux utilisateurs de copier des données vers et depuis des points de terminaison PowerShell même si le fournisseur de système de fichiers n’est pas exposé. Les racines de lecteur utilisateur sont créées sous $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\DriveRoots\. Pour chaque utilisateur qui se connecte au point de terminaison, un dossier est créé avec le nom ${env:USERDOMAIN}_${env:USERNAME}. Pour les ordinateurs des groupes de travail, la valeur est $env:USERDOMAIN le nom d’hôte.

Le contenu du lecteur utilisateur persiste entre les sessions utilisateur et ne sont pas supprimés automatiquement. Par défaut, les utilisateurs peuvent stocker jusqu’à 50 Mo de données dans le lecteur utilisateur. Cela peut être personnalisé avec le paramètre UserDriveMaximumSize .

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Path

Spécifie le chemin d’accès et le nom du fichier de configuration de session. Le fichier doit avoir une .pssc extension de nom de fichier.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-PowerShellVersion

Spécifie la version du moteur PowerShell dans les sessions qui utilisent la configuration de session. Les valeurs acceptables pour ce paramètre sont les suivantes : 2.0 et 3.0. Si vous omettez ce paramètre, la clé PowerShellVersion est commentée et la version la plus récente de PowerShell s’exécute dans la session.

La valeur du paramètre PSVersion de l’applet Register-PSSessionConfiguration de commande est prioritaire sur la valeur de la clé PowerShellVersion dans le fichier de configuration de session.

Type:Version
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RequiredGroups

Spécifie les règles d’accès conditionnel pour les utilisateurs qui se connectent à des sessions qui utilisent cette configuration de session.

Entrez une table de hachage pour composer votre liste de règles en utilisant uniquement 1 clé par table de hachage, « And » ou « Or », et définissez la valeur sur un tableau de noms de groupes de sécurité ou des tables de hachage supplémentaires.

Exemple nécessitant la connexion d’utilisateurs pour qu’ils soient membres d’un groupe unique : @{ And = 'MyRequiredGroup' }

Exemple exigeant que les utilisateurs appartiennent au groupe A, ou aux deux groupes B et C, pour accéder au point de terminaison : @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

Type:IDictionary
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RoleDefinitions

Spécifie le mappage entre les groupes de sécurité (ou les utilisateurs) et les fonctionnalités de rôle. Les utilisateurs bénéficieront d’un accès à toutes les fonctionnalités de rôle qui s’appliquent à leur appartenance au groupe au moment de la création de la session.

Entrez une table de hachage dans laquelle les clés sont le nom du groupe de sécurité et les valeurs sont des tables de hachage qui contiennent une liste de fonctionnalités de rôle qui doivent être mises à la disposition du groupe de sécurité.

Par exemple : @{'Contoso\Level 2 Helpdesk Users' = @{ RoleCapabilities = 'Maintenance', 'ADHelpDesk' }}

Type:IDictionary
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RunAsVirtualAccount

Configure les sessions à l’aide de cette configuration de session pour qu’elles soient exécutées en tant que compte d’administrateur (virtuel) de l’ordinateur. Ce champ ne peut pas être utilisé avec le paramètre GroupManagedServiceAccount .

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RunAsVirtualAccountGroups

Spécifie les groupes de sécurité à associer au compte virtuel lorsqu’une session qui utilise la configuration de session est exécutée en tant que compte virtuel. S’il est omis, le compte virtuel appartient aux administrateurs de domaine sur les contrôleurs de domaine et les administrateurs sur tous les autres ordinateurs.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SchemaVersion

Spécifie la version du schéma du fichier de configuration de session. La valeur par défaut est « 1.0.0.0 ».

Type:Version
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ScriptsToProcess

Ajoute les scripts spécifiés aux sessions qui utilisent la configuration de session. Entrez le chemin d'accès et les noms de fichiers des scripts. La valeur de ce paramètre doit être un chemin d’accès complet ou absolu des noms de fichiers de script.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SessionType

Spécifie le type de session créé à l'aide de la configuration de session. La valeur par défaut est Default. Les valeurs valides pour ce paramètre sont :

  • Vide : aucun module n’est ajouté à la session par défaut. Utilisez les paramètres de cette applet de commande pour ajouter des modules, fonctions, scripts et autres fonctionnalités à la session. Cette option est conçue pour vous permettre de créer des sessions personnalisées en ajoutant des commandes sélectionnées. Si vous n'ajoutez pas de commandes à une session vide, la session est limitée aux expressions et risque d'être inutilisable.
  • Valeur par défaut : ajoute le module Microsoft.PowerShell.Core à la session. Ce module inclut l’applet Import-Module de commande que les utilisateurs peuvent utiliser pour importer d’autres modules, sauf si vous interdisez explicitement cette applet de commande.
  • RestrictedRemoteServer. Inclut uniquement les fonctions proxy suivantes : Exit-PSSession, , Get-Command, Get-HelpGet-FormatData, Measure-Object, Out-Default, et Select-Object. Utilisez les paramètres de cette applet de commande pour ajouter des modules, fonctions, scripts et autres fonctionnalités à la session.
Type:SessionType
Valeurs acceptées:Empty, RestrictedRemoteServer, Default
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-TranscriptDirectory

Spécifie le répertoire pour placer des transcriptions de session pour les sessions à l’aide de cette configuration de session.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-TypesToProcess

Ajoute les fichiers de type spécifiés .ps1xml aux sessions qui utilisent la configuration de session. Entrez les noms de fichiers de type. La valeur de ce paramètre doit être un chemin d’accès complet ou absolu pour taper des noms de fichiers.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UserDriveMaximumSize

Spécifie la taille maximale des lecteurs utilisateur exposés dans les sessions qui utilisent cette configuration de session. En cas d’omission, la taille par défaut de chaque User: racine de lecteur est de 50 Mo.

Ce paramètre doit être utilisé avec MountUserDrive.

Type:Int64
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VariableDefinitions

Ajoute les variables spécifiées aux sessions qui utilisent la configuration de session. Entrez une table de hachage avec les clés suivantes :

  • Nom : nom de la variable. Cette clé est obligatoire.
  • Valeur : valeur de variable. Cette clé est obligatoire.

Par exemple : @{Name='WarningPreference';Value='SilentlyContinue'}

Type:Object
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VisibleAliases

Limite les alias de la session à ceux spécifiés dans la valeur de ce paramètre, ainsi que les alias que vous définissez dans le paramètre AliasDefinition . Les caractères génériques sont pris en charge. Par défaut, tous les alias définis par le moteur PowerShell et tous les alias que les modules exportent sont visibles dans la session.

Par exemple : VisibleAliases='gcm', 'gp'

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son alias ipmo de la session.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-VisibleCmdlets

Limite les applets de commande de la session à celles spécifiées dans la valeur de ce paramètre. Les caractères génériques et les noms qualifiés de module sont pris en charge.

Par défaut, toutes les applets de commande que les modules de la session exportent sont visibles dans la session. Utilisez les paramètres SessionType et ModulesToImport pour déterminer quels modules et composants logiciels enfichables sont importés dans la session. Si aucun module dans ModulesToImport n’expose l’applet de commande, le module approprié tente d’être chargé automatiquement.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son alias ipmo de la session.

Type:Object[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-VisibleExternalCommands

Limite les fichiers binaires, scripts et commandes externes qui peuvent être exécutés dans la session à ceux spécifiés dans la valeur de ce paramètre. Les caractères génériques sont pris en charge.

Par défaut, aucune commande externe n’est visible dans la session.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell, supprime l’applet Import-Module de commande et son alias ipmo de la session.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-VisibleFunctions

Limite les fonctions de la session à celles spécifiées dans la valeur de ce paramètre, ainsi que les fonctions que vous définissez dans le paramètre FunctionDefinition . Les caractères génériques sont pris en charge.

Par défaut, toutes les fonctions que les modules de la session exportent sont visibles dans la session. Utilisez les paramètres SessionType et ModulesToImport pour déterminer quels modules et composants logiciels enfichables sont importés dans la session.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son alias ipmo de la session.

Type:Object[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-VisibleProviders

Limite les fournisseurs PowerShell de la session à ceux spécifiés dans la valeur de ce paramètre. Les caractères génériques sont pris en charge.

Par défaut, tous les fournisseurs que les modules de la session exportent sont visibles dans la session. Utilisez les paramètres SessionType et ModulesToImport pour déterminer quels modules sont importés dans la session.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son ipmo alias de la session.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

Entrées

None

Vous ne pouvez pas diriger les objets vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne pas de sortie.

Notes

Windows PowerShell inclut les alias suivants pour New-PSSessionConfigurationFile:

  • npssc

Les paramètres, tels que VisibleCmdlets et VisibleProviders, n’importent pas d’éléments dans la session. À la place, ils sélectionnent les éléments importés dans la session. Par exemple, si la valeur du paramètre VisibleProviders est le fournisseur de certificats, mais que le paramètre ModulesToImport ne spécifie pas le module Microsoft.PowerShell.Security qui contient le fournisseur de certificats, le fournisseur de certificats n’est pas visible dans la session.

New-PSSessionConfigurationFile crée un fichier de configuration de session qui a une extension de nom de fichier .pssc dans le chemin d’accès que vous spécifiez dans le paramètre Path . Lorsque vous utilisez le fichier de configuration de session pour créer une configuration de session, l’applet Register-PSSessionConfiguration de commande copie le fichier de configuration et enregistre une copie active du fichier dans le sous-répertoire SessionConfig du $PSHOME répertoire.

La propriété ConfigFilePath de la configuration de session contient le chemin complet du fichier de configuration de session active. Vous pouvez modifier le fichier de configuration actif dans le répertoire à tout moment à l’aide $PSHOME de n’importe quel éditeur de texte. Les changements que vous apportez affectent toutes les nouvelles sessions qui utilisent la configuration de session, mais pas les sessions existantes.

Avant d’utiliser un fichier de configuration de session modifié, utilisez l’applet Test-PSSessionConfigurationFile de commande pour vérifier que les entrées du fichier de configuration sont valides.