Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: 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