Поделиться через


New-PSSessionConfigurationFile

Создает файл, определяющий конфигурацию сеанса.

Синтаксис

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>]

Описание

Командлет New-PSSessionConfigurationFile создает файл параметров, определяющих конфигурацию сеанса и среду сеансов, созданных с помощью конфигурации сеанса. Чтобы использовать файл в конфигурации сеанса, используйте параметр Path для Register-PSSessionConfiguration командлетов или Set-PSSessionConfiguration командлетов.

Файл конфигурации сеанса, New-PSSessionConfigurationFile который создает, является текстовым файлом, который содержит хэш-таблицу свойств и значений конфигурации сеанса. Файл имеет .pssc расширение имени файла.

Все параметры являются необязательными New-PSSessionConfigurationFile , за исключением параметра Path . Если параметр пропущен, соответствующий ключ в файле конфигурации сеанса преобразуется в комментарий (за исключением указанных в описании параметра).

Конфигурация сеанса, также известная как конечная точка, — это коллекция параметров на локальном компьютере, определяющих среду для сеансов PowerShell (PSSessions), которые подключаются к компьютеру. Все psSessions используют конфигурацию сеанса. Чтобы указать определенную конфигурацию сеанса, используйте параметр ConfigurationName командлетов, создающих сеанс, например New-PSSession командлет.

Файл конфигурации сеанса позволяет легко определить конфигурацию сеанса без сложных скриптов или сборок кода. Параметры в файле используются с необязательным скриптом запуска и любыми сборками в конфигурации сеанса.

Дополнительные сведения о конфигурациях сеансов и файлах конфигурации сеанса см. в about_Session_Configurations и about_Session_Configuration_Files.

Этот командлет появился в PowerShell 3.0. Начиная с PowerShell 6.0 этот командлет был доступен только на платформе Windows. PowerShell 7.3 сделал этот командлет доступным на всех поддерживаемых платформах.

Примеры

Пример 1. Создание и использование сеанса NoLanguage

В этом примере показано, как создать и эффекты использования сеанса без языка.

Эти шаги включают:

  1. Создайте файл конфигурации.
  2. Зарегистрируйте конфигурацию.
  3. Создайте новый сеанс, использующий конфигурацию.
  4. Выполните команды в этом новом сеансе.

Чтобы выполнить команды в этом примере, запустите PowerShell с помощью параметра "Запуск от имени администратора". Этот параметр необходим для запуска командлета Register-PSSessionConfiguration .

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

В этом примере происходит сбой Invoke-Command , так как для LanguageMode задано значение NoLanguage.

Пример 2. Создание и использование сеанса RestrictedLanguage

В этом примере показано, как создать и эффекты использования сеанса без языка.

Эти шаги включают:

  1. Создайте файл конфигурации.
  2. Зарегистрируйте конфигурацию.
  3. Создайте новый сеанс, использующий конфигурацию.
  4. Выполните команды в этом новом сеансе.

Чтобы выполнить команды в этом примере, запустите PowerShell с помощью параметра "Запуск от имени администратора". Этот параметр необходим для запуска командлета Register-PSSessionConfiguration .

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

В этом примере выполняется успешное выполнение, Invoke-Command так как для LanguageMode задано значение RestrictedLanguage.

Пример 3. Изменение файла конфигурации сеанса

В этом примере показано, как изменить файл конфигурации сеанса, используемый в существующем сеансе с именем ITTasks. Ранее эти сеансы имели только основные модули и внутренний модуль ITTasks . Администратор хочет добавить модуль PSScheduledJob в сеансы, созданные с помощью конфигурации сеанса ITTasks.

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

Командлет New-PSSessionConfigurationFile для создания файла конфигурации сеанса, который импортирует необходимые модули. Командлет Set-PSSessionConfiguration заменяет текущий файл конфигурации новым. Эта новая конфигурация влияет только на новые сеансы, созданные после изменения. Существующие сеансы ITTasks не затрагиваются.

Пример 4. Редактирование файла конфигурации сеанса

В этом примере показано, как изменить конфигурацию сеанса путем редактирования копии конфигурации активного сеанса из файла конфигурации. Чтобы изменить копию конфигурации сеанса файла конфигурации, необходимо иметь полный доступ к файлу. Это может потребовать изменения разрешений в файле.

В этом сценарии мы хотим добавить новый псевдоним для командлета Select-String , изменив активный файл конфигурации.

Приведенный ниже пример кода выполняет следующие действия, чтобы внести это изменение.

  1. Путь к файлу конфигурации для сеанса ITConfig.
  2. Пользователь изменяет файл конфигурации с помощью Notepad.exe, чтобы изменить значение AliasDefinitions следующим образом: AliasDefinitions = @(@{Name='slst';Value='Select-String'})
  3. Проверьте обновленный файл конфигурации.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Используйте подробный параметр, Test-PSSessionConfigurationFile чтобы отобразить обнаруженные ошибки. Командлет возвращается $True , если в файле не обнаружены ошибки.

Пример 5. Создание примера файла конфигурации

В этом примере показана New-PSSessionConfigurationFile команда, которая использует все параметры командлета. Она включена в пример, чтобы показать правильный входной формат для каждого параметра.

Получившийся файл SampleFile.pssc отображается в выходных данных.

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

}

Параметры

-AliasDefinitions

Добавляет указанные псевдонимы сеансы, использующие конфигурацию сеанса. Введите хэш-таблицу со следующими разделами:

  • Имя — имя псевдонима. Этот раздел обязателен.
  • Значение — команда, представляющая псевдоним. Этот раздел обязателен.
  • Описание — текстовая строка, описывающая псевдоним. Этот раздел необязателен.
  • Параметры — параметры псевдонима. Этот раздел необязателен. Значение по умолчанию — None. Допустимые значения для этого параметра: None, ReadOnly, Constant, Private или AllScope.

Например: @{Name='hlp';Value='Get-Help';Description='Gets help';Options='ReadOnly'}

Тип:IDictionary[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AssembliesToLoad

Задает сборки для загрузки в сеансы, которые используют конфигурацию сеанса.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Author

Указывает автора конфигурации сеанса или файла конфигурации. По умолчанию используется текущий пользователь. Значение этого параметра отображается в файле конфигурации сеанса, но не является свойством объекта конфигурации сеанса.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CompanyName

Указывает компанию, которая создала конфигурацию сеанса или файл конфигурации. Значение по умолчанию — Unknown. Значение этого параметра отображается в файле конфигурации сеанса, но не является свойством объекта конфигурации сеанса.

Тип:String
Position:Named
Default value:Unknown
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Указывает авторские права на файл конфигурации сеанса. Значение этого параметра отображается в файле конфигурации сеанса, но не является свойством объекта конфигурации сеанса.

Если этот параметр не указан, New-PSSessionConfigurationFile создается заявление об авторских правах с помощью значения параметра Author .

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Description

Указывает описание конфигурации сеанса или файла конфигурации сеанса. Значение этого параметра отображается в файле конфигурации сеанса, но не является свойством объекта конфигурации сеанса.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-EnvironmentVariables

Добавляет переменные среды в сеанс. Введите хэш-таблицу, в которой разделами являются имена переменных среды, а значениями — значения переменных среды.

Например: EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

Тип:IDictionary
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ExecutionPolicy

Указывает политику выполнения сеансов, использующих конфигурацию сеанса. Если этот параметр не указан, значение ключа ExecutionPolicy в файле конфигурации сеанса ограничено. Сведения о политиках выполнения в PowerShell см. в about_Execution_Policies.

Тип:ExecutionPolicy
Допустимые значения:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-FormatsToProcess

Указывает файлы форматирования (PS1XML-файлы), выполняющиеся в сеансах, которые используют конфигурацию сеанса. Значение этого параметра должно быть полным или абсолютным путем к файлам форматирования.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Full

Указывает, что эта операция включает все возможные свойства конфигурации в файле конфигурации сеанса.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-FunctionDefinitions

Добавляет в сеансы указанные функции, использующие конфигурацию сеанса. Введите хэш-таблицу со следующими разделами:

  • Имя — имя функции. Этот раздел обязателен.
  • ScriptBlock — текст функции. Введите блок сценария. Этот раздел обязателен.
  • Параметры — параметры функции. Этот раздел необязателен. Значение по умолчанию — None. Допустимые значения для этого параметра: None, ReadOnly, Constant, Private или AllScope.

Например: @{Name='Get-PowerShellProcess';ScriptBlock={Get-Process PowerShell};Options='AllScope'}

Тип:IDictionary[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-GroupManagedServiceAccount

Настраивает сеансы с помощью этой конфигурации сеанса для запуска в контексте указанной управляемой учетной записи службы группы. Компьютер, на котором зарегистрирована конфигурация сеанса, должен иметь разрешение на запрос пароля gMSA для успешного создания сеансов. Это поле нельзя использовать с параметром RunAsVirtualAccount .

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Guid

Указывает уникальный идентификатор для файла конфигурации сеанса. Если этот параметр опущен, New-PSSessionConfigurationFile создается GUID для файла. Чтобы создать новый GUID в PowerShell, введите New-Guid.

Тип:Guid
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-LanguageMode

Определяет, какие элементы языка PowerShell разрешены в сеансах, использующих эту конфигурацию сеанса. Этот параметр можно использовать для ограничения команд, которые определенные пользователи могут выполнять на компьютере.

Допустимые значения для этого параметра:

  • FullLanguage — разрешены все элементы языка.
  • ConstrainedLanguage — команды, содержащие скрипты для оценки, не допускаются. Режим ConstrainedLanguage ограничивает доступ пользователя к типам, объектам или методам Microsoft .NET Framework.
  • NoLanguage — пользователи могут запускать командлеты и функции, но не могут использовать любые языковые элементы, такие как блоки скриптов, переменные или операторы.
  • RestrictedLanguage— пользователи могут запускать командлеты и функции, но не могут использовать блоки скриптов или переменные, за исключением следующих разрешенных переменных: $PSCulture, $PSUICulture, $Trueи $False$Null. Пользователи могут использовать только базовые операторы сравнения (-eq, -gt, ). -lt Операторы присваивания, ссылки на свойство и вызовы методов не разрешены.

Значение параметра LanguageMode по умолчанию зависит от значения параметра SessionType.

  • Пустой — NoLanguage
  • RestrictedRemoteServer — NoLanguage
  • По умолчанию — FullLanguage
Тип:PSLanguageMode
Допустимые значения:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ModulesToImport

Указывает модули и оснастки, которые автоматически импортируются в сеансы, использующие конфигурацию сеанса.

По умолчанию только оснастка Microsoft.PowerShell.Core импортируется в удаленные сеансы, но если командлеты не исключены, пользователи могут использовать Import-Module Add-PSSnapin и командлеты для добавления модулей и оснастки в сеанс.

Каждый модуль или оснастка в значении этого параметра может быть представлен в виде строки или хэш-таблицы. Строка модуля состоит из имени модуля или оснастки. Хэш-таблица модуля может включать разделы ModuleName, ModuleVersion и GUID. Обязателен только раздел ModuleName.

Например, следующее значение состоит из строки и хэш-таблицы. Допустимо любое сочетание строк и хэш-таблиц в любом порядке.

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

Значение параметра Register-PSSessionConfiguration ModulesToImport командлета имеет приоритет над значением ключа ModulesToImport в файле конфигурации сеанса.

Тип:Object[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-MountUserDrive

Настраивает сеансы, использующие эту конфигурацию сеанса для предоставления User: PSDrive. Диски пользователей уникальны для каждого подключающегося пользователя и позволяют пользователям копировать данные в конечные точки PowerShell и из них, даже если поставщик файловой системы не предоставляется. Корни дисков пользователей создаются в разделе $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Для каждого пользователя, подключающегося к конечной точке, создается папка с именем $env:USERDOMAIN\$env:USERNAME. Для компьютеров в рабочих группах значением является имя $env:USERDOMAIN узла.

Содержимое на диске пользователя сохраняется в сеансах пользователей и не удаляется автоматически. По умолчанию пользователи могут хранить только до 50 МБ данных на диске пользователя. Это можно настроить с помощью параметра UserDriveMaximumSize .

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

Указывает путь и имя файла конфигурации сеанса. Файл должен иметь .pssc расширение имени файла.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-PowerShellVersion

Указывает версию подсистемы PowerShell в сеансах, использующих конфигурацию сеанса. Допустимые значения для этого параметра: 2.0 и 3.0. Если этот параметр не указан, ключ PowerShellVersion закомментирован, а последняя версия PowerShell выполняется в сеансе.

Значение параметра Register-PSSessionConfiguration PSVersion командлета имеет приоритет над значением ключа PowerShellVersion в файле конфигурации сеанса.

Тип:Version
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RequiredGroups

Задает правила условного доступа для пользователей, подключающихся к сеансам, которые используют эту конфигурацию сеанса.

Введите хэш-файл, чтобы создать список правил, используя только 1 ключ для хэш-файла, "And" или "Or", и задайте для него массив имен групп безопасности или дополнительных хэш-списков.

Пример, требующий подключения пользователей к членам одной группы: @{ And = 'MyRequiredGroup' }

Пример, требующий, чтобы пользователи принадлежали к группе A или группам B и C, чтобы получить доступ к конечной точке: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

Тип:IDictionary
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RoleDefinitions

Задает сопоставление между группами безопасности (или пользователями) и возможностями ролей. Пользователи получат доступ ко всем возможностям ролей, которые применяются к членству в группах во время создания сеанса.

Введите хэш-таблицу, в которой ключи являются именем группы безопасности, а значения — хэш-таблицы, содержащие список возможностей ролей, которые должны быть доступны группе безопасности.

Например: @{'Contoso\Level 2 Helpdesk Users' = @{ RoleCapabilities = 'Maintenance', 'ADHelpDesk' }}

Тип:IDictionary
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RunAsVirtualAccount

Настраивает сеансы с помощью этой конфигурации сеанса для запуска в качестве учетной записи администратора компьютера (виртуальной). Это поле нельзя использовать с параметром GroupManagedServiceAccount .

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RunAsVirtualAccountGroups

Указывает группы безопасности, связанные с виртуальной учетной записью, когда сеанс, использующий конфигурацию сеанса, запускается как виртуальная учетная запись. Если не указано, виртуальная учетная запись принадлежит администраторам домена на контроллерах домена и администраторах на всех остальных компьютерах.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SchemaVersion

Указывает версию схемы файла конфигурации сеанса. Значение по умолчанию: 1.0.0.0.

Тип:Version
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ScriptsToProcess

Добавляет указанные сценарии в сеансы, использующие конфигурацию сеанса. Введите путь и имена файлов сценариев. Значение этого параметра должно быть полным или абсолютным путем имен файлов скрипта.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SessionType

Указывает тип сеанса, создаваемого при использовании конфигурации сеанса. Значение по умолчанию ― Default. Допустимые значения для этого параметра:

  • Пустое — модули по умолчанию не добавляются в сеанс. Параметры этого командлета позволяют добавить в сеанс модули, функции, скрипты и другие элементы. Этот параметр предназначен для создания пользовательских сеансов путем добавления выбранных команд. Если вы не добавите команды в пустой сеанс, сеанс ограничивается выражениями и может не работать.
  • По умолчанию — добавляет модуль Microsoft.PowerShell.Core в сеанс. Этот модуль включает Import-Module командлет, который пользователи могут использовать для импорта других модулей, если этот командлет явно не запрещен.
  • RestrictedRemoteServer. Включает только следующие функции-посредники: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Defaultи Select-Object. Параметры этого командлета позволяют добавить в сеанс модули, функции, скрипты и другие элементы.
Тип:SessionType
Допустимые значения:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TranscriptDirectory

Указывает каталог для размещения расшифровок сеансов для сеансов с помощью этой конфигурации сеанса.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TypesToProcess

Добавляет указанные .ps1xml файлы типов в сеансы, использующие конфигурацию сеанса. Введите имена файлов типа. Значение этого параметра должно быть полным или абсолютным путем к имени файла типа.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UserDriveMaximumSize

Задает максимальный размер дисков пользователей, предоставляемых в сеансах, использующих эту конфигурацию сеанса. Если опущено, размер каждого User: корневого диска по умолчанию составляет 50 МБ.

Этот параметр следует использовать с MountUserDrive.

Тип:Int64
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VariableDefinitions

Добавляет указанные переменные в сеансы, использующие конфигурацию сеанса. Введите хэш-таблицу со следующими разделами:

  • Имя — имя переменной. Этот раздел обязателен.
  • Значение — переменное значение. Этот раздел обязателен.

Например: @{Name='WarningPreference';Value='SilentlyContinue'}

Тип:Object
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VisibleAliases

Ограничивает псевдонимы в сеансе теми, которые указаны в значении этого параметра, а также всеми псевдонимами, определенными в параметре AliasDefinition. Поддерживаются подстановочные знаки. По умолчанию все псевдонимы, определенные подсистемой PowerShell, и все псевдонимы, экспортируемые модулями, отображаются в сеансе.

Например: VisibleAliases='gcm', 'gp'

Если любой видимый параметр включен в файл конфигурации сеанса, PowerShell удаляет Import-Module командлет и его псевдоним ipmo из сеанса.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-VisibleCmdlets

Ограничивает командлеты в сеансе теми, которые указаны в значении этого параметра. Поддерживаются подстановочные знаки и имена квалифицированных модулей.

По умолчанию все командлеты, экспортируемые модулями в сеансе, отображаются в сеансе. Используйте параметры SessionType и ModulesToImport, чтобы определить, какие модули и оснастки импортируются в сеанс. Если модули в ModulesToImport не предоставляют командлет, соответствующий модуль попытается выполнить автоматическую загрузку.

Если любой видимый параметр включен в файл конфигурации сеанса, PowerShell удаляет Import-Module командлет и его псевдоним ipmo из сеанса.

Тип:Object[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-VisibleExternalCommands

Ограничивает внешние двоичные файлы, скрипты и команды, которые могут выполняться в сеансе, указанным в значении этого параметра. Поддерживаются подстановочные знаки.

По умолчанию внешние команды не отображаются в сеансе.

Если любой видимый параметр включен в файл конфигурации сеанса, PowerShell удаляет Import-Module командлет и его псевдоним ipmo из сеанса.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-VisibleFunctions

Ограничивает функции в сеансе теми, которые указаны в значении этого параметра, а также всеми функциями, определенными в параметре FunctionDefinition. Поддерживаются подстановочные знаки.

По умолчанию все функции, экспортируемые модулями в сеансе, отображаются в сеансе. Используйте параметры SessionType и ModulesToImport, чтобы определить, какие модули и оснастки импортируются в сеанс.

Если любой видимый параметр включен в файл конфигурации сеанса, PowerShell удаляет Import-Module командлет и его псевдоним ipmo из сеанса.

Тип:Object[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-VisibleProviders

Ограничивает поставщиков PowerShell в сеансе теми, которые указаны в значении этого параметра. Поддерживаются подстановочные знаки.

По умолчанию все поставщики, экспортируемые модулями в сеансе, отображаются в сеансе. Используйте параметры SessionType и ModulesToImport, чтобы определить, какие модули импортируются в сеанс.

Если любой видимый параметр включен в файл конфигурации сеанса, PowerShell удаляет Import-Module командлет и его ipmo псевдоним из сеанса.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.

Примечания

  • Параметры, такие как VisibleCmdlets и VisibleProviders, не импортируют элементы в сеанс. Вместо этого они отбирают элементы, импортированные в сеанс. Например, если значение параметра VisibleProviders является поставщиком сертификатов , но параметр ModulesToImport не указывает модуль Microsoft.PowerShell.Security , содержащий поставщика сертификатов, поставщик сертификатов не отображается в сеансе.

  • New-PSSessionConfigurationFile создает файл конфигурации сеанса с расширением имени ФАЙЛА PSSC в пути, заданном в параметре Path . При использовании файла конфигурации сеанса для создания конфигурации сеанса командлет копирует файл конфигурации Register-PSSessionConfiguration и сохраняет активную копию файла в подкаталоге $PSHOME SessionConfig каталога.

    Свойство ConfigFilePath конфигурации сеанса содержит полный путь к файлу конфигурации активного сеанса. Активный файл конфигурации в каталоге можно изменить в $PSHOME любое время с помощью любого текстового редактора. Внесенные изменения влияют на все новые сеансы, которые используют конфигурацию сеанса, но не на текущие сеансы.

    Перед использованием измененного файла конфигурации сеанса используйте Test-PSSessionConfigurationFile командлет, чтобы убедиться, что записи файла конфигурации допустимы.