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.
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:
- Cree un nuevo archivo de configuración.
- Registre la configuración.
- Cree una nueva sesión que use la configuración.
- 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:
- Cree un nuevo archivo de configuración.
- Registre la configuración.
- Cree una nueva sesión que use la configuración.
- 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:
- Obtenga la ruta de acceso del archivo de configuración para la sesión de ITConfig.
- 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'})
. - 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 |
-Copyright
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\Windows\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-Default
ySelect-Object
.Get-FormatData
Get-Command
Exit-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
Windows PowerShell incluye los siguientes alias para New-PSSessionConfigurationFile
:
npssc
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.