Compartir a través de


New-PSSessionConfigurationFile

Crea un archivo que define una configuración de sesión.

Sintaxis

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

El New-PSSessionConfigurationFile cmdlet crea un archivo de configuración que define una configuración de sesión y el entorno de sesiones que se crean mediante la configuración de sesión. Para usar el archivo en una configuración de sesión, use el parámetro Path de los Register-PSSessionConfiguration cmdlets o Set-PSSessionConfiguration .

El archivo de configuración de sesión que New-PSSessionConfigurationFile crea es un archivo de texto legible que contiene una tabla hash de las propiedades y valores de configuración de sesión. El archivo tiene una .pssc extensión de nombre de archivo.

Todos los parámetros de New-PSSessionConfigurationFile son opcionales, excepto el parámetro Path . Si omite un parámetro, la clave correspondiente en el archivo de configuración de sesión está marcada con comentarios, excepto en la parte de la descripción del parámetro que se indique.

Una configuración de sesión, también conocida como punto de conexión, es una colección de valores en el equipo local que definen el entorno para las sesiones de PowerShell (PSSessions) que se conectan al equipo. Todas las PSSession usan una configuración de sesión. Para especificar una configuración de sesión determinada, use el parámetro ConfigurationName de cmdlets que crean una sesión, como el New-PSSession cmdlet .

Un archivo de configuración de sesión facilita la definición de una configuración de sesión sin scripts complejos ni ensamblados de código. La configuración del archivo se usa con el script de inicio opcional y los ensamblados de la configuración de sesión.

Para obtener más información sobre las configuraciones de sesión y los archivos de configuración de sesión, consulte about_Session_Configurations y about_Session_Configuration_Files.

Este cmdlet se introdujo en PowerShell 3.0. A partir de PowerShell 6.0, este cmdlet solo estaba disponible en la plataforma Windows. PowerShell 7.3 hizo que este cmdlet esté disponible en todas las plataformas compatibles.

Ejemplos

Ejemplo 1: Creación y uso de una sesión de NoLanguage

En este ejemplo se muestra cómo crear y los efectos de usar una sesión sin idioma.

Entre los pasos se incluyen:

  1. Cree un nuevo archivo de configuración.
  2. Registre la configuración.
  3. Cree una nueva sesión que use la configuración.
  4. Ejecute comandos en esa nueva sesión.

Para ejecutar los comandos de este ejemplo, inicie PowerShell mediante la opción Ejecutar como administrador. Esta opción es necesaria para ejecutar el Register-PSSessionConfiguration cmdlet .

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

En este ejemplo, se produce un Invoke-Command error porque LanguageMode está establecido en NoLanguage.

Ejemplo 2: Creación y uso de una sesión RestrictedLanguage

En este ejemplo se muestra cómo crear y los efectos de usar una sesión sin idioma.

Entre los pasos se incluyen:

  1. Cree un nuevo archivo de configuración.
  2. Registre la configuración.
  3. Cree una nueva sesión que use la configuración.
  4. Ejecute comandos en esa nueva sesión.

Para ejecutar los comandos de este ejemplo, inicie PowerShell mediante la opción Ejecutar como administrador. Esta opción es necesaria para ejecutar el Register-PSSessionConfiguration cmdlet .

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

En este ejemplo, se Invoke-Command realiza correctamente porque LanguageMode está establecido en RestrictedLanguage.

Ejemplo 3: Cambiar un archivo de configuración de sesión

En este ejemplo se muestra cómo cambiar el archivo de configuración de sesión que se usa en una sesión existente denominada "ITTasks". Anteriormente, estas sesiones solo tenían los módulos principales y un módulo ITTasks interno. El administrador quiere agregar el módulo PSScheduledJob a las sesiones creadas mediante la configuración de sesión de ITTasks.

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

Cmdlet New-PSSessionConfigurationFile para crear un archivo de configuración de sesión que importa los módulos necesarios. El Set-PSSessionConfiguration cmdlet reemplaza el archivo de configuración actual por el nuevo. Esta nueva configuración solo afecta a las nuevas sesiones creadas después del cambio. Las sesiones "ITTasks" existentes no se ven afectadas.

Ejemplo 4: Edición de un archivo de configuración de sesión

Este ejemplo muestra cómo cambiar una configuración de sesión mediante la edición de la copia de configuración de la sesión activa del archivo de configuración. Para modificar la copia de configuración de sesión del archivo de configuración, debe tener acceso de control total al archivo. Esto puede requerir que cambie los permisos en el archivo.

En este escenario, queremos agregar un nuevo alias para el Select-String cmdlet editando el archivo de configuración activo.

El código de ejemplo siguiente realiza los pasos siguientes para realizar este cambio:

  1. Obtenga la ruta de acceso del archivo de configuración para la sesión de ITConfig.
  2. El usuario edita el archivo de configuración mediante Notepad.exe para cambiar el valor AliasDefinitions de la siguiente manera: AliasDefinitions = @(@{Name='slst';Value='Select-String'}) .
  3. Pruebe el archivo de configuración actualizado.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Use el parámetro Verbose con Test-PSSessionConfigurationFile para mostrar los errores detectados. El cmdlet devuelve $True si no se detecta ningún error en el archivo.

Ejemplo 5: Crear un archivo de configuración de ejemplo

En este ejemplo se muestra un New-PSSessionConfigurationFile comando que usa todos los parámetros del cmdlet. Se incluye para mostrar el formato de entrada correcto para cada parámetro.

El archivo SampleFile.pssc que se obtiene se muestra en los resultados.

$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'

}

Parámetros

-AliasDefinitions

Agrega los alias especificados a las sesiones que usan la configuración de sesión. Especifique una tabla hash con las claves siguientes:

  • Nombre: nombre del alias. Esta clave es obligatoria.
  • Valor: comando que representa el alias. Esta clave es obligatoria.
  • Descripción: cadena de texto que describe el alias. Esta clave es opcional.
  • Opciones: opciones de alias. Esta clave es opcional. El valor predeterminado es None. Los valores aceptables para este parámetro son: None, ReadOnly, Constant, Private o AllScope.

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

Tipo:IDictionary[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-AssembliesToLoad

especifica los ensamblados que se cargan en las sesiones que usan la configuración de sesión.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Author

Especifica el autor de la configuración de sesión o el archivo de configuración. El valor predeterminado es el usuario actual. El valor de este parámetro es visible en el archivo de configuración de sesión, pero no es una propiedad del objeto de configuración de sesión.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-CompanyName

Especifica la empresa que creó la configuración de sesión o el archivo de configuración. El valor predeterminado es Desconocido. El valor de este parámetro es visible en el archivo de configuración de sesión, pero no es una propiedad del objeto de configuración de sesión.

Tipo:String
Posición:Named
Valor predeterminado:Unknown
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Especifica un copyright del archivo de configuración de sesión. El valor de este parámetro es visible en el archivo de configuración de sesión, pero no es una propiedad del objeto de configuración de sesión.

Si omite este parámetro, New-PSSessionConfigurationFile genera una declaración de copyright mediante el valor del parámetro Author .

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Description

Especifica una descripción de la configuración de sesión o del archivo de configuración de sesión. El valor de este parámetro es visible en el archivo de configuración de sesión, pero no es una propiedad del objeto de configuración de sesión.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-EnvironmentVariables

Agrega variables de entorno a la sesión. Especifique una tabla hash en la que las claves sean los nombres de variables de entorno y los valores sean los valores de variables de entorno.

Por ejemplo: EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

Tipo:IDictionary
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-ExecutionPolicy

especifica la directiva de ejecución de las sesiones que usan la configuración de sesión. Si omite este parámetro, el valor de la clave ExecutionPolicy en el archivo de configuración de sesión es Restringido. Para obtener información sobre las directivas de ejecución en PowerShell, consulte about_Execution_Policies.

Tipo:ExecutionPolicy
Valores aceptados:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-FormatsToProcess

Especifica los archivos de formato (.ps1xml) que se ejecutan en las sesiones que usan la configuración de sesión. El valor de este parámetro debe ser una ruta de acceso completa o absoluta de los archivos de formato.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Full

Indica que esta operación incluye todas las propiedades de configuración posibles en el archivo de configuración de sesión.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-FunctionDefinitions

Agrega las funciones especificadas a las sesiones que usan la configuración de sesión. Especifique una tabla hash con las claves siguientes:

  • Nombre: nombre de la función. Esta clave es obligatoria.
  • ScriptBlock: cuerpo de la función. Escriba un bloque de scripts. Esta clave es obligatoria.
  • Opciones: opciones de función. Esta clave es opcional. El valor predeterminado es None. Los valores aceptables para este parámetro son: None, ReadOnly, Constant, Private o AllScope.

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

Tipo:IDictionary[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-GroupManagedServiceAccount

Configura las sesiones con esta configuración de sesión para ejecutarse en el contexto de la cuenta de servicio administrada de grupo especificada. La máquina donde se registra esta configuración de sesión debe tener permiso para solicitar la contraseña de gMSA para que las sesiones se creen correctamente. Este campo no se puede usar con el parámetro RunAsVirtualAccount .

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Guid

Especifica un identificador único para el archivo de configuración de sesión. Si omite este parámetro, New-PSSessionConfigurationFile genera un GUID para el archivo. Para crear un nuevo GUID en PowerShell, escriba New-Guid.

Tipo:Guid
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-LanguageMode

Determina qué elementos del lenguaje de PowerShell se permiten en las sesiones que usan esta configuración de sesión. Puede usar este parámetro para restringir los comandos que pueden ejecutar determinados usuarios en el equipo.

Los valores permitidos para este parámetro son los siguientes:

  • FullLanguage: se permiten todos los elementos del lenguaje.
  • ConstrainedLanguage: no se permiten los comandos que contienen scripts que se van a evaluar. El modo ConstrainedLanguage restringe el acceso del usuario a tipos, objetos o métodos de Microsoft .NET Framework.
  • NoLanguage: los usuarios pueden ejecutar cmdlets y funciones, pero no pueden usar ningún elemento de lenguaje, como bloques de script, variables o operadores.
  • RestrictedLanguage: los usuarios pueden ejecutar cmdlets y funciones, pero no pueden usar bloques de script ni variables, excepto las siguientes variables permitidas: , , , y $Null$False. $True$PSUICulture$PSCulture Los usuarios solo pueden usar los operadores de comparación básicos (-eq, -gt, -lt). No se permiten instrucciones de asignación, referencias a propiedades y llamadas a métodos.

El valor predeterminado del parámetro LanguageMode depende del valor del parámetro SessionType .

  • Vacío: NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • Valor predeterminado: FullLanguage
Tipo:PSLanguageMode
Valores aceptados:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-ModulesToImport

Especifica los módulos y complementos que se importan automáticamente a las sesiones que utilizan la configuración de sesión.

De forma predeterminada, solo el complemento Microsoft.PowerShell.Core se importa en sesiones remotas, pero a menos que se excluyan los cmdlets, los usuarios pueden usar los Import-Module cmdlets y Add-PSSnapin para agregar módulos y complementos a la sesión.

Cada módulo o complemento con el valor de este parámetro lo puede representar una cadena o una tabla hash. Una cadena de módulo consta solo del nombre del módulo o complemento. Una tabla hash de módulo puede incluir moduleName, ModuleVersion y claves GUID . Solo se requiere la clave ModuleName .

Por ejemplo, el siguiente valor consta de una cadena y una tabla hash. Cualquier combinación de cadenas y tablas hash, en cualquier orden, es válida.

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

El valor del parámetro ModulesToImport del Register-PSSessionConfiguration cmdlet tiene prioridad sobre el valor de la clave ModulesToImport en el archivo de configuración de sesión.

Tipo:Object[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-MountUserDrive

Configura las sesiones que usan esta configuración de sesión para exponer psDrive User: . Las unidades de usuario son únicas para cada usuario que conecta y permiten a los usuarios copiar datos hacia y desde puntos de conexión de PowerShell incluso si el proveedor del sistema de archivos no está expuesto. Las raíces de la unidad de usuario se crean en $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Para cada usuario que se conecta al punto de conexión, se crea una carpeta con el nombre $env:USERDOMAIN\$env:USERNAME. En el caso de los equipos en grupos de trabajo, el valor de es el nombre de $env:USERDOMAIN host.

El contenido de la unidad de usuario persiste en las sesiones de usuario y no se quita automáticamente. De forma predeterminada, los usuarios solo pueden almacenar hasta 50 MB de datos en la unidad de usuario. Esto se puede personalizar con el parámetro UserDriveMaximumSize .

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Path

Especifica la ruta de acceso y el nombre de archivo del archivo de configuración de sesión. El archivo debe tener una .pssc extensión de nombre de archivo.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-PowerShellVersion

Especifica la versión del motor de PowerShell en sesiones que usan la configuración de sesión. Los valores aceptables para este parámetro son: 2.0 y 3.0. Si omite este parámetro, la clave powerShellVersion se comenta y la versión más reciente de PowerShell se ejecuta en la sesión.

El valor del parámetro PSVersion del Register-PSSessionConfiguration cmdlet tiene prioridad sobre el valor de la clave de PowerShellVersion en el archivo de configuración de sesión.

Tipo:Version
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-RequiredGroups

Especifica reglas de acceso condicional para los usuarios que se conectan a sesiones que usan esta configuración de sesión.

Escriba una tabla hash para componer la lista de reglas con solo 1 clave por tabla hash, "And" o "Or", y establezca el valor en una matriz de nombres de grupo de seguridad o tablas hash adicionales.

Ejemplo que requiere conectar usuarios para que sean miembros de un único grupo: @{ And = 'MyRequiredGroup' }

Ejemplo que requiere que los usuarios pertenezcan al grupo A, o a los grupos B y C, para acceder al punto de conexión: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

Tipo:IDictionary
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-RoleDefinitions

Especifica la asignación entre grupos de seguridad (o usuarios) y funcionalidades de rol. A los usuarios se les concederá acceso a todas las funcionalidades de rol que se aplican a su pertenencia a grupos en el momento en que se crea la sesión.

Escriba una tabla hash en la que las claves son el nombre del grupo de seguridad y los valores son tablas hash que contienen una lista de funcionalidades de rol que deben estar disponibles para el grupo de seguridad.

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

Tipo:IDictionary
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-RunAsVirtualAccount

Configura las sesiones con esta configuración de sesión para ejecutarse como cuenta de administrador del equipo (virtual). Este campo no se puede usar con el parámetro GroupManagedServiceAccount .

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-RunAsVirtualAccountGroups

Especifica los grupos de seguridad que se van a asociar a la cuenta virtual cuando se ejecuta una sesión que usa la configuración de sesión como una cuenta virtual. Si se omite, la cuenta virtual pertenece a administradores de dominio en controladores de dominio y administradores en todos los demás equipos.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SchemaVersion

Especifica la versión del esquema de archivo de configuración de sesión. El valor predeterminado es "1.0.0.0".

Tipo:Version
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-ScriptsToProcess

Agrega los scripts especificados a las sesiones que usan la configuración de sesión. Escriba los nombres de ruta de acceso y de archivo de los scripts. El valor de este parámetro debe ser una ruta de acceso completa o absoluta de nombres de archivo de script.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SessionType

Especifica el tipo de sesión que se crea usando la configuración de sesión. El valor predeterminado es Default. Los valores permitidos para este parámetro son los siguientes:

  • Vacío: no se agregan módulos a la sesión de forma predeterminada. Use los parámetros de este cmdlet para agregar módulos, funciones, scripts y otras características a la sesión. Esta opción está diseñada para crear sesiones personalizadas agregando comandos seleccionados. Si no agrega comandos a una sesión vacía, la sesión se limita a las expresiones y podría ser inservible.
  • Valor predeterminado: agrega el módulo Microsoft.PowerShell.Core a la sesión. Este módulo incluye el Import-Module cmdlet que los usuarios pueden usar para importar otros módulos a menos que se prohíbe explícitamente este cmdlet.
  • RestrictedRemoteServer. Incluye solo las siguientes funciones de proxy: , , Get-Help, , Measure-Object, Out-Defaulty Select-Object. Get-FormatDataGet-CommandExit-PSSession Use los parámetros de este cmdlet para agregar módulos, funciones, scripts y otras características a la sesión.
Tipo:SessionType
Valores aceptados:Empty, RestrictedRemoteServer, Default
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-TranscriptDirectory

Especifica el directorio para colocar transcripciones de sesión para las sesiones que usan esta configuración de sesión.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-TypesToProcess

Agrega los archivos de tipo especificados .ps1xml a las sesiones que usan la configuración de sesión. Escriba los nombres de archivo de tipo. El valor de este parámetro debe ser una ruta de acceso completa o absoluta para escribir nombres de archivo.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-UserDriveMaximumSize

Especifica el tamaño máximo de las unidades de usuario expuestas en sesiones que usan esta configuración de sesión. Cuando se omite, el tamaño predeterminado de cada User: raíz de unidad es de 50 MB.

Este parámetro debe usarse con MountUserDrive.

Tipo:Int64
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-VariableDefinitions

Agrega las variables especificadas a las sesiones que usan la configuración de sesión. Especifique una tabla hash con las claves siguientes:

  • Nombre: nombre de la variable. Esta clave es obligatoria.
  • Valor: valor variable. Esta clave es obligatoria.

Por ejemplo: @{Name='WarningPreference';Value='SilentlyContinue'}

Tipo:Object
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-VisibleAliases

Limita los alias de la sesión a los especificados en el valor de este parámetro, además de los alias que defina en el parámetro AliasDefinition . Se admite el uso de caracteres comodín. De forma predeterminada, todos los alias definidos por el motor de PowerShell y todos los alias que exportan los módulos están visibles en la sesión.

Por ejemplo: VisibleAliases='gcm', 'gp'

Cuando se incluye cualquier parámetro Visible en el archivo de configuración de sesión, PowerShell quita el Import-Module cmdlet y su alias ipmo de la sesión.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

-VisibleCmdlets

Limita los cmdlets en la sesión a los especificados en el valor de este parámetro. Se admiten caracteres comodín y nombres calificados de módulo.

De forma predeterminada, están visibles en la sesión todos los cmdlets que los módulos de la sesión exportan. Use los parámetros SessionType y ModulesToImport para determinar qué módulos y complementos se importan en la sesión. Si ningún módulo de ModulesToImport expone el cmdlet, el módulo adecuado intentará cargarse automáticamente.

Cuando se incluye cualquier parámetro Visible en el archivo de configuración de sesión, PowerShell quita el Import-Module cmdlet y su alias ipmo de la sesión.

Tipo:Object[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

-VisibleExternalCommands

Limita los archivos binarios externos, los scripts y los comandos que se pueden ejecutar en la sesión a los especificados en el valor de este parámetro. Se admite el uso de caracteres comodín.

De forma predeterminada, no hay ningún comando externo visible en la sesión.

Cuando se incluye cualquier parámetro Visible en el archivo de configuración de sesión, PowerShell quita el Import-Module cmdlet y su alias ipmo de la sesión.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

-VisibleFunctions

Limita las funciones de la sesión a las especificadas en el valor de este parámetro, además de las funciones que defina en el parámetro FunctionDefinition . Se admite el uso de caracteres comodín.

De forma predeterminada, están visibles en la sesión todas las funciones que los módulos de la sesión exportan. Use los parámetros SessionType y ModulesToImport para determinar qué módulos y complementos se importan en la sesión.

Cuando se incluye cualquier parámetro Visible en el archivo de configuración de sesión, PowerShell quita el Import-Module cmdlet y su alias ipmo de la sesión.

Tipo:Object[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

-VisibleProviders

Limita los proveedores de PowerShell de la sesión a los especificados en el valor de este parámetro. Se admite el uso de caracteres comodín.

De forma predeterminada, están visibles en la sesión todos los proveedores que los módulos de la sesión exportan. Use los parámetros SessionType y ModulesToImport para determinar qué módulos se importan en la sesión.

Cuando se incluye cualquier parámetro Visible en el archivo de configuración de sesión, PowerShell quita el Import-Module cmdlet y su ipmo alias de la sesión.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

None

Este cmdlet no devuelve ningún resultado.

Notas

  • Los parámetros, como VisibleCmdlets y VisibleProviders, no importan elementos en la sesión. En su lugar, seleccionan entre los elementos que se importan a la sesión. Por ejemplo, si el valor del parámetro VisibleProviders es el proveedor de certificados, pero el parámetro ModulesToImport no especifica el módulo Microsoft.PowerShell.Security que contiene el proveedor de certificados, el proveedor de certificados no está visible en la sesión.

  • New-PSSessionConfigurationFile crea un archivo de configuración de sesión que tiene una extensión de nombre de archivo .pssc en la ruta de acceso especificada en el parámetro Path . Cuando se usa el archivo de configuración de sesión para crear una configuración de sesión, el Register-PSSessionConfiguration cmdlet copia el archivo de configuración y guarda una copia activa del archivo en el subdirectorio SessionConfig del $PSHOME directorio.

    La propiedad ConfigFilePath de la configuración de sesión contiene la ruta de acceso completa del archivo de configuración de sesión activo. Puede modificar el archivo de configuración activo en el $PSHOME directorio en cualquier momento mediante cualquier editor de texto. Los cambios que realice afectan a todas las nuevas sesiones que usan la configuración de sesión, pero no a las sesiones existentes.

    Antes de usar un archivo de configuración de sesión editado, use el Test-PSSessionConfigurationFile cmdlet para comprobar que las entradas del archivo de configuración son válidas.