[玩转系统] 关于会话配置文件
作者:精品下载站 日期:2024-12-14 02:18:25 浏览:13 分类:玩电脑
关于会话配置文件
简短描述
描述会话配置文件,这些文件在会话配置(也称为“端点”)中使用,以定义使用该会话配置的会话环境。
详细描述
此信息仅适用于在 Windows 上运行的 PowerShell。
“会话配置文件”是一个文件扩展名为 .pssc 的文本文件,其中包含会话配置属性和值的哈希表。您可以使用会话配置文件来设置会话配置的属性。这样做可以定义使用该会话配置的任何 PowerShell 会话的环境。
会话配置文件可以轻松创建自定义会话配置,而无需使用复杂的 C# 程序集或脚本。
“会话配置”或“端点”是本地计算机设置的集合,用于确定哪些用户可以在计算机上创建会话等内容;用户可以在这些会话中运行哪些命令;以及会话是否应作为特权虚拟帐户运行。有关会话配置的更多信息,请参阅 about_Session_Configurations。
会话配置是在 Windows PowerShell 2.0 中引入的,会话配置文件是在 Windows PowerShell 3.0 中引入的。您必须使用 Windows PowerShell 3.0 将会话配置文件包含在会话配置中。但是,Windows PowerShell 2.0(及更高版本)的用户会受到会话配置中的设置的影响。
创建自定义会话
您可以通过在会话配置中指定会话属性来自定义 PowerShell 会话的许多功能。您可以通过编写定义自定义运行空间的 C# 程序来自定义会话,也可以使用会话配置文件来定义使用会话配置创建的会话的属性。一般来说,使用会话配置文件比编写 C# 程序更容易。
您可以使用会话配置文件为高度信任的用户创建功能齐全的会话等项目;允许最少访问的锁定会话;专门设计的会话,仅包含这些任务所需的模块;以及非特权用户只能作为特权帐户运行特定命令的会话。
除此之外,您还可以管理会话的用户是否可以使用 PowerShell 语言元素(例如脚本块),或者是否只能运行命令。您可以管理用户可以在会话中运行的PowerShell版本;管理哪些模块导入到会话中;并管理会话用户可以运行哪些 cmdlet、函数和别名。使用 RoleDefinitions 字段时,您可以根据组成员身份在会话中为用户提供不同的功能。
有关 RoleDefinitions 以及如何定义此值的详细信息,请参阅 New-PSRoleCapabilityFile Cmdlet 的帮助主题。
创建会话配置文件
创建会话配置文件的最简单方法是使用 New-PSSessionConfigurationFile cmdlet。此 cmdlet 生成一个使用正确语法和格式的文件,并自动验证许多配置文件属性值。
有关可以在会话配置文件中设置的属性的详细说明,请参阅 New-PSSessionConfigurationFile cmdlet 的帮助主题。
以下命令创建一个使用默认值的会话配置文件。生成的配置文件仅使用默认值,因为除了 Path 参数(指定文件路径)之外不包含其他参数:
New-PSSessionConfigurationFile -Path .\Defaults.pssc
要在默认文本编辑器中查看新配置文件,请使用以下命令:
Invoke-Item -Path .\Defaults.pssc
要为用户可以运行命令但不能使用 PowerShell 语言的其他元素的会话创建会话配置,请键入:
New-PSSessionConfigurationFile -LanguageMode NoLanguage
-Path .\NoLanguage.pssc
在上述命令中,将 LanguageMode 参数设置为 NoLanguage 可防止用户执行编写或运行脚本或使用变量等操作。
要为用户只能使用 Get cmdlet 的会话创建会话配置,请键入:
New-PSSessionConfigurationFile -VisibleCmdlets Get-*
-Path .\GetSessions.pssc
在前面的示例中,将 VisibleCmdlets 参数设置为 Get-* 将用户限制为名称以字符串值“Get-”开头的 cmdlet。
要为在特权虚拟帐户而不是用户凭据下运行的会话创建会话配置,请键入:
New-PSSessionConfigurationFile -RunAsVirtualAccount
-Path .\VirtualAccount.pssc
要为会话创建会话配置,其中用户可见的命令在角色功能文件中指定,请键入:
New-PSSessionConfigurationFile -RoleDefinitions
@{ 'CONTOSO\User' = @{ RoleCapabilities = 'Maintenance' }}
-Path .\Maintenance.pssc
使用会话配置文件
您可以在创建会话配置时包含会话配置文件,也可以稍后将文件添加到会话配置中。
要在创建会话配置时包含会话配置文件,请使用 Register-PSSessionConfiguration cmdlet 的 Path 参数。
例如,以下命令在创建 NoLanguage 会话配置时使用 NoLanguage.pssc 文件。
Register-PSSessionConfiguration -Name NoLanguage
-Path .\NoLanguage.pssc
当新的 NoLanguage 会话启动时,用户将只能访问 PowerShell 命令。
要将会话配置文件添加到现有会话配置,请使用 Set-PSSessionConfiguration cmdlet 和 Path 参数。这会影响使用指定会话配置创建的任何新会话。请注意,Set-PSSessionConfiguration cmdlet 会更改会话本身,但不会修改会话配置文件。
例如,以下命令将 NoLanguage.pssc 文件添加到 LockedDown 会话配置中。
Set-PSSessionConfiguration -Name LockedDown
-Path .\NoLanguage.pssc
当用户使用 LockedDown 会话配置创建会话时,他们将能够运行 cmdlet,但无法创建或使用变量、分配值或使用其他 PowerShell 语言元素。
以下命令使用 New-PSSession cmdlet 在计算机 Srv01 上创建一个使用 LockedDown 会话配置的会话,并在 $s 变量中保存对该会话的对象引用。会话配置的ACL(访问控制列表)决定了谁可以使用它来创建会话。
$s = New-PSSession -ComputerName Srv01
-ConfigurationName LockedDown
由于 NoLanguage 约束已添加到 LockedDown 会话配置中,因此 LockedDown 会话中的用户将只能运行 PowerShell 命令和 cmdlet。例如,以下两个命令使用 Invoke-Command cmdlet 在 $s 变量引用的会话中运行命令。第一个命令运行 Get-UICulture cmdlet 并且不使用任何变量,成功。第二个命令获取 $PSUICulture 变量的值,但失败。
Invoke-Command -Session $s {Get-UICulture}
en-US
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
编辑会话配置文件
会话配置中除 RunAsVirtualAccount 和 RunAsVirtualAccountGroups 之外的所有设置都可以通过编辑会话配置使用的会话配置文件来修改。为此,首先要找到会话配置文件的活动副本。
当您在会话配置中使用会话配置文件时,PowerShell 会创建会话配置文件的活动副本,并将其存储在本地计算机上的 $pshome\SessionConfig 目录中。
会话配置文件的活动副本的位置存储在会话配置对象的 ConfigFilePath 属性中。
以下命令获取 NoLanguage 会话配置的会话配置文件的位置。
(Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath
该命令返回类似于以下内容的文件路径:
C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\
NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc
您可以在任何文本编辑器中编辑 .pssc 文件。保存文件后,任何使用该会话配置的新会话都将使用该文件。
如果需要修改 RunAsVirtualAccount 或 RunAsVirtualAccountGroups 设置,则必须取消注册会话配置并重新注册包含编辑值的会话配置文件。
测试会话配置文件
使用 Test-PSSessionConfigurationFile cmdlet 测试手动编辑的会话配置文件。这很重要:如果文件语法和值无效,用户将无法使用会话配置来创建会话。
例如,以下命令测试 NoLanguage 会话配置的活动会话配置文件。
Test-PSSessionConfigurationFile -Path C:\WINDOWS\System32\
WindowsPowerShell\v1.0\SessionConfig\
NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc
如果配置文件中的语法和值有效,则 Test-PSSessionConfigurationFile 返回 True。如果语法和值无效,则 cmdlet 返回 False。
您可以使用 Test-PSSessionConfigurationFile 测试任何会话配置文件,包括 New-PSSessionConfiguration cmdlet 创建的文件。有关详细信息,请参阅 Test-PSSessionConfigurationFile cmdlet 的帮助主题。
删除会话配置文件
您无法从会话配置中删除会话配置文件。但是,您可以将该文件替换为使用默认设置的新文件。这有效地取消了原始配置文件使用的设置。
要替换会话配置文件,请创建一个使用默认设置的新会话配置文件,然后使用 Set-PSSessionConfiguration cmdlet 将自定义会话配置文件替换为新文件。
例如,以下命令创建默认会话配置文件,然后替换 NoLanguage 会话配置中的活动会话配置文件。
New-PSSessionConfigurationFile -Path .\Default.pssc
Set-PSSessionConfiguration -Name NoLanguage
-Path .\Default.pssc
当这些命令完成时,NoLanguage 会话配置实际上将为使用该会话配置创建的所有会话提供完整的语言支持(默认设置)。
查看会话配置的属性 使用会话配置文件表示会话配置的会话配置对象具有附加属性,可以轻松发现和分析会话配置。 (请注意,下面显示的类型名称包括格式化的视图定义。)您可以通过运行 Get-PSSessionConfiguration cmdlet 并将返回的数据通过管道传输到 Get-Member cmdlet 来查看属性:
Get-PSSessionConfiguration NoLanguage | Get-Member
TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands
#PSSessionConfiguration
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.O...
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Architecture NoteProperty System.String Archit...
Author NoteProperty System.String Author...
AutoRestart NoteProperty System.String AutoRe...
Capability NoteProperty System.Object[] Capa...
CompanyName NoteProperty System.String Compan...
configfilepath NoteProperty System.String config...
Copyright NoteProperty System.String Copyri...
Enabled NoteProperty System.String Enable...
ExactMatch NoteProperty System.String ExactM...
ExecutionPolicy NoteProperty System.String Execut...
Filename NoteProperty System.String Filena...
GUID NoteProperty System.String GUID=0...
ProcessIdleTimeoutSec NoteProperty System.String Proces...
IdleTimeoutms NoteProperty System.String IdleTi...
lang NoteProperty System.String lang=e...
LanguageMode NoteProperty System.String Langua...
MaxConcurrentCommandsPerShell NoteProperty System.String MaxCon...
MaxConcurrentUsers NoteProperty System.String MaxCon...
MaxIdleTimeoutms NoteProperty System.String MaxIdl...
MaxMemoryPerShellMB NoteProperty System.String MaxMem...
MaxProcessesPerShell NoteProperty System.String MaxPro...
MaxShells NoteProperty System.String MaxShells
MaxShellsPerUser NoteProperty System.String MaxShe...
Name NoteProperty System.String Name=N...
PSVersion NoteProperty System.String PSVersion
ResourceUri NoteProperty System.String Resour...
RunAsPassword NoteProperty System.String RunAsP...
RunAsUser NoteProperty System.String RunAsUser
SchemaVersion NoteProperty System.String Schema...
SDKVersion NoteProperty System.String SDKVer...
OutputBufferingMode NoteProperty System.String Output...
SessionType NoteProperty System.String Sessio...
UseSharedProcess NoteProperty System.String UseSha...
SupportsOptions NoteProperty System.String Suppor...
xmlns NoteProperty System.String xmlns=...
XmlRenderingType NoteProperty System.String XmlRen...
Permission ScriptProperty System.Object Permis...
这些属性使搜索特定会话配置变得容易。例如,您可以使用 ExecutionPolicy 属性来查找支持具有 RemoteSigned 执行策略的会话的会话配置。请注意,由于 ExecutionPolicy 属性仅存在于使用会话配置文件的会话上,因此该命令可能不会返回所有符合条件的会话配置。
Get-PSSessionConfiguration |
where {$_.ExecutionPolicy -eq "RemoteSigned"}
以下命令获取 RunAsUser 是 Exchange 管理员的会话配置。
Get-PSSessionConfiguration |
where {$_.RunAsUser -eq "Exchange01\Admin01"}
要查看有关与配置关联的角色定义的信息,请使用 Get-PSSessionCapability cmdlet。此 cmdlet 使您能够确定特定端点中特定用户可用的命令和环境。
笔记
会话配置还支持一种称为“空”会话的会话类型。空会话类型使您能够使用选定的命令创建自定义会话。如果不将模块、函数或脚本添加到空会话中,则该会话仅限于表达式,并且可能没有任何实际用途。 SessionType 属性告诉您是否正在使用空会话。
参见
- about_Session_Configurations
- 新的PSRoleCapabilityFile
- 新 PS 会话
- 获取 PSSessionCapability
- 禁用-PSSessionConfiguration
- 启用-PSSessionConfiguration
- 获取 PSSessionConfiguration
- 注册-PSSessionConfiguration
- 设置 PSSessionConfiguration
- 取消注册-PSSessionConfiguration
- 新建 PSSessionConfigurationFile
- 测试-PSSessionConfigurationFile
- 上一篇:[玩转系统] 关于简化语法
- 下一篇:[精彩网文] 收入和净资产成为美国中产阶级
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag