Сведения о конфигурациях сеансов

КРАТКОЕ ОПИСАНИЕ

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

ПОДРОБНОЕ ОПИСАНИЕ

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

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

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

Начиная с PowerShell 3.0, можно использовать файл конфигурации сеанса для определения элементов конфигурации сеанса. Эта функция упрощает настройку сеансов без написания кода и обнаружения свойств конфигурации сеанса. Чтобы создать файл конфигурации сеанса, используйте командлет New-PSSessionConfiguration. Дополнительные сведения о файлах конфигураций сеансов см. в разделе about_Session_Configuration_Files.

Конфигурации сеансов — это функция удаленного взаимодействия PowerShell на основе веб-служб управления (WS-Management). Они используются только при использовании командлетов New-PSSession, Invoke-Command или Enter-PSSession для подключения к удаленному компьютеру.

Примечание. Чтобы управлять конфигурациями сеансов, запустите PowerShell с параметром "Запуск от имени администратора".

Сведения о конфигурациях сеансов

Каждый сеанс PowerShell использует конфигурацию сеанса. Сюда входят постоянные сеансы, создаваемые с помощью командлетов New-PSSession или Enter-PSSession, а также временные сеансы, создаваемые PowerShell при использовании параметра ComputerName командлета, использующего технологию удаленного взаимодействия на основе WS-Management, например Invoke-Command.

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

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

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

Встроенные конфигурации сеансов

PowerShell 3.0 включает встроенные конфигурации сеансов с именами Microsoft.PowerShell и Microsoft.PowerShell.Workflow. На компьютерах под управлением 64-разрядных версий Windows PowerShell также предоставляет Microsoft.PowerShell32 — 32-разрядную конфигурацию сеанса.

Конфигурация сеанса Microsoft.PowerShell используется для сеансов по умолчанию, то есть если команда для создания сеанса не включает параметр ConfigurationName командлета New-PSSession, Enter-PSSession или Invoke-Command.

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

Конфигурации сеансов по умолчанию можно изменить с помощью переменной предпочтения $PSSessionConfigurationName. Дополнительные сведения см. в разделе about_Preference_Variables.

Просмотр конфигураций сеансов на локальном компьютере

Чтобы получить конфигурации сеанса на локальном компьютере, используйте командлет Get-PSSessionConfiguration.

Например, введите:

PS C:> Get-PSSessionConfiguration | Format-List -Property Name, Permission

Name       : microsoft.powershell
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell.workflow
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell32
Permission : BUILTIN\Administrators AccessAllowed

Объект конфигурации сеанса расширяется в PowerShell 3.0, чтобы отобразить свойства конфигурации сеанса, настроенные с помощью файла конфигурации сеанса.

Например, чтобы просмотреть все свойства объекта конфигурации сеанса, введите:

PS C:> Get-PSSessionConfiguration | Format-List -Property *

Вы также можете использовать поставщик WSMan в PowerShell для просмотра конфигураций сеансов. Поставщик WSMan создает WSMAN: диск в сеансе.

На диске WSMAN: конфигурации сеансов находятся в узле подключаемого модуля. (Все конфигурации сеансов находятся в узле подключаемого модуля, но в узле подключаемого модуля есть элементы, которые не являются конфигурациями сеансов.)

Например, чтобы просмотреть конфигурации сеанса на локальном компьютере, введите:

PS C:> dir wsman:\localhost\plugin\microsoft*

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Просмотр конфигураций сеансов на удаленном компьютере

Чтобы просмотреть конфигурации сеансов на удаленном компьютере, используйте командлет Connect-WSMan, чтобы добавить заметку для удаленного компьютера в WSMAN: диск на локальном компьютере, а затем используйте диск WSMAN: для просмотра конфигураций сеансов.

Например, следующая команда добавляет узел для удаленного компьютера Server01 на диск WSMAN: на локальном компьютере.

PS C:> Connect-WSMan server01.corp.fabrikam.com

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

Пример:

PS C:> cd wsman:

PS WSMan:> dir

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01.corp.fabrikam.com                    Container

PS WSMan:> dir server01\plugin\

WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Pl
ugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Изменение дескриптора безопасности конфигурации сеанса

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

Чтобы включить удаленный доступ к конфигурациям сеанса на компьютере, используйте командлет Enable-PSRemoting. Этот командлет создает две конфигурации сеанса:

  • с именем, определенным как "PowerShell". + "Текущая версия PowerShell"
  • с именем "PowerShell.6", который не связан с любой конкретной версией PowerShell.

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

Чтобы предоставить другим пользователям разрешение на удаленное подключение к компьютеру, используйте командлет Set-PSSessionConfiguration, чтобы добавить разрешения Execute для этих пользователей в дескрипторы безопасности конфигураций сеансов Microsoft.PowerShell и Microsoft.PowerShell32.

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

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Чтобы запретить всем разрешениям на все конфигурации сеанса на компьютере, используйте командлет Disable-PSSessionConfiguration. Например, следующая команда отключает конфигурации сеансов по умолчанию на компьютере.

PS C:> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

Чтобы запретить удаленным пользователям подключаться к компьютеру, но разрешить локальным пользователям подключаться, используйте командлет Disable-PSRemoting. Disable-PSRemoting добавляет запись "Network_Deny_All" ко всем конфигурациям сеанса на компьютере.

PS C:> Disable-PSRemoting

Чтобы разрешить удаленным пользователям использовать все конфигурации сеансов на компьютере, используйте командлет Enable-PSRemoting или Enable-PSSessionConfiguration. Например, следующая команда обеспечивает удаленный доступ к встроенным конфигурациям сеанса.

PS C:> Enable-PSSessionConfiguration -name Microsoft.Power*

Чтобы внести другие изменения в дескриптор безопасности конфигурации сеанса, используйте командлет Set-PSSessionConfiguration. Используйте параметр SecurityDescriptorSDDL для отправки строкового значения SDDL. Используйте параметр ShowSecurityDescriptorUI для отображения листа свойств пользовательского интерфейса, который помогает создать новый SDDL.

Пример:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Создание конфигурации сеанса

Чтобы создать новую конфигурацию сеанса на локальном компьютере, используйте командлет Register-PSSessionConfiguration. Чтобы определить новую конфигурацию сеанса, можно использовать сборку C#, скрипт PowerShell и параметры командлета Register-PSSessionConfiguration.

Например, следующая команда создает конфигурацию сеанса, идентичную конфигурации сеанса Microsoft.PowerShell, за исключением того, что данные, полученные из удаленной команды, ограничиваются 20 мегабайтами (МБ). (Значение по умолчанию — 50 МБ).

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

При создании конфигурации сеанса его можно управлять с помощью других командлетов конфигурации сеанса, и он отображается на диске WSMAN:

Дополнительные сведения см. в разделе Register-PSSessionConfiguration.

Удаление конфигурации сеанса

Чтобы удалить конфигурацию сеанса с локального компьютера, используйте командлет Unregister-PSSessionConfiguration. Например, следующая команда удаляет конфигурацию сеанса NewConfig с компьютера.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Дополнительные сведения см. в разделе Unregister-PSSessionConfiguration.

Восстановление конфигурации сеанса

Чтобы восстановить конфигурацию сеанса по умолчанию, которая была удалена (незарегистрирована) случайно, используйте командлет Enable-PSRemoting.

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

Чтобы восстановить исходные значения свойств конфигурации сеанса по умолчанию, используйте Unregister-PSSessionConfiguration для удаления конфигурации сеанса, а затем используйте командлет Enable-PSRemoting для повторного создания.

Выбор конфигурации сеанса

Чтобы выбрать определенную конфигурацию сеанса для сеанса, используйте параметр ConfigurationName New-PSSession, Enter-PSSession или Invoke-Command.

Например, эта команда использует командлет New-PSSession для запуска PSSession на компьютере Server01. Команда использует параметр ConfigurationName для выбора конфигурации WithProfile на компьютере Server01.

PS C:> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

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

Можно также использовать переменную предпочтения $PSSessionConfigurationName для изменения конфигурации сеанса по умолчанию на компьютере. Дополнительные сведения о переменной предпочтения $PSSessionConfigurationName см. в about_Preference_Variables.

КЛЮЧЕВЫЕ СЛОВА

about_Endpoints about_SessionConfigurations

СМ. ТАКЖЕ

about_Preference_Variables

about_PSSessions

about_Remote

about_Session_Configuration_Files

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration