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


about_Session_Configuration_Files

Назначение: Windows PowerShell 3.0

РАЗДЕЛ

about_Session_Configuration_Files

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

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

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

«Файл конфигурации сеанса» — это текстовый файл с расширением имени файла PSSC, содержащий хэш-таблицу свойств и значений конфигурации сеанса. Файл конфигурации сеанса можно использовать для задания свойств конфигурации сеанса и, следовательно, для определения среды сеансов Windows PowerShell®, которые используют конфигурацию сеанса.

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

«Конфигурация сеанса» или «конечная точка» — это набор параметров на локальном компьютере, которые определяют, какие пользователи могут создавать сеансы на компьютере и какие команды они могут выполнять в сеансах. Дополнительные сведения о конфигурациях сеанса см. в описании about_Session_Configurations (https://go.microsoft.com/fwlink/?LinkID=145152).

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

СОЗДАНИЕ НАСТРАИВАЕМЫХ СЕАНСОВ.

Можно настроить многие функции сеанса Windows PowerShell, указав свойства сеанса в конфигурации сеанса. Для настройки сеанса можно написать программу на C#, которая определяет настраиваемое пространство выполнения, либо использовать файл конфигурации сеанса, чтобы определить свойства сеансов, создаваемых с помощью конфигурации сеанса.

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

Например, можно определить, могут ли пользователи сеанса использовать элементы языка Windows PowerShell, такие как блоки сценариев, или они могут только выполнять команды. Можно определить, какая версия Windows PowerShell может выполняться в сеансе, какие модули импортируются в сеанс и какие командлеты, функции и псевдонимы сеанса могут выполнять пользователи.

СОЗДАНИЕ ФАЙЛА КОНФИГУРАЦИИ СЕАНСА

Самым простым способом создания файла конфигурации сеанса является использование командлета New-PSSessionConfiguration. Этот командлет генерирует файл с правильным синтаксисом и форматом, а также проверяет многие значения свойств.

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

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

        PS C:\> New-PSSessionConfigurationFile -Path .\Defaults.pssc

Чтобы открыть и просмотреть файл в текстовом редакторе по умолчанию, используйте следующую команду:

        PS C:\> Invoke-Item -Path .\Defaults.pssc

Чтобы создать конфигурацию сеанса для сеансов, в которых пользователь может выполнять команды, но не может использовать другие элементы языка Windows PowerShell, введите:

        PS C:\> New-PSSessionConfigurationFile -LanguageMode NoLanguage -Path .\NoLanguage.pssc

Чтобы создать конфигурацию сеанса для сеансов, в которых пользователи могут использовать только командлеты Get, введите:

        PS C:\> New-PSSessionConfigurationFile -VisibleCmdlets Get-* -Path .\GetSessions.pssc

ИСПОЛЬЗОВАНИЕ ФАЙЛА КОНФИГУРАЦИИ СЕАНСА

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

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

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

      PS C:\> Register-PSSessionConfiguration -Name NoLanguage -Path .\NoLanguage.pssc

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

Следующая команда добавляет файл NoLanguage.pssc в конфигурацию сеанса LockedDown.

      PS C:\> Set-PSSessionConfiguration -Name LockedDown -Path .\NoLanguage.pssc

Когда пользователи используют конфигурацию сеанса LockedDown для создания сеанса, они могут выполнять командлеты, но не в состоянии создавать или использовать переменные, присваивать значения или использовать другие элементы языка Windows PowerShell.

Например, следующая команда использует командлет New-PSSession для создания на локальном компьютере сеанса, который использует конфигурацию LockedDown. Сеанс сохраняется в переменную $s. Список ACL конфигурации сеанса определяет, кто может его использовать для создания сеанса.

      PS C:\> $s = New-PSSession -ComputerName Srv01 -ConfigurationName LockedDown

Следующая команда использует командлет Invoke-Command для выполнения команд в сеансе в переменной $s. Первая команда, которая выполняет командлет Get-UICulture, завершается успешно. Однако вторая команда, которая возвращает значение переменной $PSUICulture, завершается ошибкой.

      PS C:\> Invoke-Command -Session $s {Get-UICulture}
      en-US

      PS C:\> Invoke-Command -Session $s {$PSUICulture}
      The syntax is not supported by this runspace. This might be because it is in no-language mode.
        + CategoryInfo          : ParserError: ($PSUICulture:String) [], ParseException
        + FullyQualifiedErrorId : ScriptsNotAllowed

ИЗМЕНЕНИЕ ФАЙЛА КОНФИГУРАЦИИ СЕАНСА

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

Когда пользователь использует файл конфигурации сеанса в конфигурации сеанса, Windows PowerShell создает активную копию файла конфигурации сеанса и сохраняет ее в каталоге $pshome\SessionConfig на локальном компьютере.

Расположение активной копии файла конфигурации сеанса хранится в свойстве ConfigFilePath объекта конфигурации сеанса.

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

      PS C:\> (Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath
      C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

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

ТЕСТИРОВАНИЕ ФАЙЛА КОНФИГУРАЦИИ СЕАНСА

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

Например, следующая команда проверяет активный файл конфигурации сеанса NoLanguage.

     PS C:\> Test-PSSessionConfigurationFile -Path C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

Командлет Test-PSSessionConfigurationFile можно использовать для проверки любого файла конфигурации сеанса, включая файлы, созданные с помощью New-PSSessionConfiguration. Дополнительные сведения см. в разделе справки по командлету Test-PSSessionConfigurationFile.

УДАЛЕНИЕ ФАЙЛА КОНФИГУРАЦИИ СЕАНСА

Безопасно удалить файл конфигурации сеанса из конфигурации сеанса нельзя, но можно заменить файл таким файлом, который не оказывает никакого влияния. Вставьте текст раздела.

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

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

     PS C:\> New-PSSessionConfigurationFile -Path .\Default.pssc
     PS C:\> Set-PSSessionConfiguration -Name NoLanguage -Path .\Default.pssc

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

ПРОСМОТР СВОЙСТВ КОНФИГУРАЦИИ СЕАНСА

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

      PS C:\> Get-PSSessionConfiguration NoLanguage | Get-Member

        TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration

      Name                          MemberType     Definition
      ----                          ----------     ----------
      Equals                        Method         bool Equals(System.Object obj)
      GetHashCode                   Method         int GetHashCode()
      GetType                       Method         type GetType()
      ToString                      Method         string ToString()
      Architecture                  NoteProperty   System.String Architecture=64
      Author                        NoteProperty   System.String Author=juneb
      AutoRestart                   NoteProperty   System.String AutoRestart=fals
      Capability                    NoteProperty   System.Object[] Capability=Sys
      CompanyName                   NoteProperty   System.String CompanyName=Unkn
      configfilepath                NoteProperty   System.String configfilepath=C
      Copyright                     NoteProperty   System.String Copyright=(c) 20
      Enabled                       NoteProperty   System.String Enabled=True
      ExactMatch                    NoteProperty   System.String ExactMatch=true
      ExecutionPolicy               NoteProperty   System.String ExecutionPolicy=
      Filename                      NoteProperty   System.String Filename=%windir
      GUID                          NoteProperty   System.String GUID=0c115179-ff
      ProcessIdleTimeoutSec         NoteProperty   System.String ProcessIdleTimeo
      IdleTimeoutms                 NoteProperty   System.String IdleTimeoutms=72
      lang                          NoteProperty   System.String lang=en-US
      LanguageMode                  NoteProperty   System.String LanguageMode=NoL
      MaxConcurrentCommandsPerShell NoteProperty   System.String MaxConcurrentCom
      MaxConcurrentUsers            NoteProperty   System.String MaxConcurrentUse
      MaxIdleTimeoutms              NoteProperty   System.String MaxIdleTimeoutms
      MaxMemoryPerShellMB           NoteProperty   System.String MaxMemoryPerShel
      MaxProcessesPerShell          NoteProperty   System.String MaxProcessesPerS
      MaxShells                     NoteProperty   System.String MaxShells=300
      MaxShellsPerUser              NoteProperty   System.String MaxShellsPerUser
      Name                          NoteProperty   System.String Name=NoLanguage
      PSVersion                     NoteProperty   System.String PSVersion=3.0
      ResourceUri                   NoteProperty   System.String ResourceUri=http
      RunAsPassword                 NoteProperty   System.String RunAsPassword=
      RunAsUser                     NoteProperty   System.String RunAsUser=
      SchemaVersion                 NoteProperty   System.String SchemaVersion=1.
      SDKVersion                    NoteProperty   System.String SDKVersion=1
      OutputBufferingMode           NoteProperty   System.String OutputBufferingM
      SessionType                   NoteProperty   System.String SessionType=Defa
      UseSharedProcess              NoteProperty   System.String UseSharedProcess
      SupportsOptions               NoteProperty   System.String SupportsOptions=
      xmlns                         NoteProperty   System.String xmlns=http://sch
      XmlRenderingType              NoteProperty   System.String XmlRenderingType
      Permission                    ScriptProperty System.Object Permission {get=

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

      PS C:\> Get-PSSessionConfiguration | where {$_.ExecutionPolicy -eq "RemoteSigned"}

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

      PS C:\>  Get-PSSessionConfiguration | where {$_.RunAsUser -eq "Exchange01\Admin01"}

ПРИМЕЧАНИЯ

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

СМ. ТАКЖЕ

about_Session_Configurations

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration