[玩转系统] 关于执行政策
作者:精品下载站 日期:2024-12-14 02:23:11 浏览:12 分类:玩电脑
关于执行政策
简短描述
描述 PowerShell 执行策略并解释如何管理它们。
详细描述
PowerShell 的执行策略是一项安全功能,用于控制 PowerShell 加载配置文件和运行脚本的条件。此功能有助于防止恶意脚本的执行。
在 Windows 计算机上,您可以为本地计算机、当前用户或特定会话设置执行策略。您还可以使用组策略设置来设置计算机和用户的执行策略。
本地计算机和当前用户的执行策略存储在注册表中。您无需在 PowerShell 配置文件中设置执行策略。特定会话的执行策略仅存储在内存中,并且在会话关闭时丢失。
执行策略不是限制用户操作的安全系统。例如,当用户无法运行脚本时,可以通过在命令行中键入脚本内容来轻松绕过策略。相反,执行策略帮助用户设置基本规则并防止他们无意中违反这些规则。
在非 Windows 计算机上,默认执行策略为无限制且无法更改。 Set-ExecutionPolicy
cmdlet 可用,但 PowerShell 显示一条控制台消息,表明它不受支持。虽然 Get-ExecutionPolicy
在非 Windows 平台上返回 Unrestricted,但该行为确实与 Bypass 匹配,因为这些平台未实现 Windows 安全区域。
PowerShell执行策略
这些策略仅在 Windows 平台上执行。 PowerShell执行策略如下:
全部签名
- 脚本可以运行。
- 要求所有脚本和配置文件均由受信任的发布者签名,包括您在本地计算机上编写的脚本。
- 在运行来自尚未分类为可信或不可信的发布者的脚本之前提示您。
- 运行已签名但恶意的脚本的风险。
绕过
- 没有任何内容被阻止,也没有警告或提示。
默认
- 设置默认执行策略。
远程签名
- Windows 服务器计算机的默认执行策略。
Unblock-File
cmdlet),则运行从 Internet 下载且未签名的脚本。受限
- Windows 客户端计算机的默认执行策略。
.ps1xml
)、模块脚本文件 (.psm1
) 和 PowerShell 配置文件 (.ps1
)代码>)。未定义
- 当前范围内没有设置执行策略。
无限制
- 非 Windows 计算机的默认执行策略,无法更改。
笔记
在不区分通用命名约定 (UNC) 路径和 Internet 路径的系统上,由 UNC 路径标识的脚本可能不允许使用远程签名执行策略运行。
执行政策范围
您可以设置仅在特定范围内有效的执行策略。
Scope 的有效值为 MachinePolicy、UserPolicy、Process、CurrentUser 和本地机器。 LocalMachine 是设置执行策略时的默认值。
范围值按优先顺序列出。即使在较低优先级设置了更严格的策略,优先的策略在当前会话中仍然有效。
有关更多信息,请参阅设置执行策略。
MachinePolicy
由组策略为计算机的所有用户设置。
UserPolicy
由计算机当前用户的组策略设置。
过程
进程范围仅影响当前的PowerShell会话。执行策略保存在环境变量
$env:PSExecutionPolicyPreference
中,而不是注册表中。当 PowerShell 会话关闭时,变量和值将被删除。CurrentUser
执行策略仅影响当前用户。它存储在 HKEY_CURRENT_USER 注册表子项中。
LocalMachine
执行策略影响当前计算机上的所有用户。它存储在HKEY_LOCAL_MACHINE注册表子项中。
使用 PowerShell 管理执行策略
要获取当前 PowerShell 会话的有效执行策略,请使用 Get-ExecutionPolicy
cmdlet。
以下命令获取有效的执行策略:
Get-ExecutionPolicy
要获取影响当前会话的所有执行策略并按优先顺序显示它们:
Get-ExecutionPolicy -List
结果类似于以下示例输出:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine AllSigned
在这种情况下,有效的执行策略是RemoteSigned,因为当前用户的执行策略优先于为本地计算机设置的执行策略。
要获取为特定范围设置的执行策略,请使用 Get-ExecutionPolicy
的 Scope 参数。
例如,以下命令获取 CurrentUser 范围的执行策略:
Get-ExecutionPolicy -Scope CurrentUser
改变执行策略
要更改 Windows 计算机上的 PowerShell 执行策略,请使用 Set-ExecutionPolicy
cmdlet。该变更立即生效。您无需重新启动 PowerShell。
如果您为 LocalMachine 或 CurrentUser 范围设置执行策略,则更改将保存在注册表中并保持有效,直到您再次更改为止。
如果您为 Process 范围设置执行策略,则它不会保存在注册表中。执行策略将保留到当前进程和任何子进程关闭为止。
笔记
在 Windows Vista 和更高版本的 Windows 中,要运行更改本地计算机(LocalMachine)范围的执行策略的命令,请使用以管理员身份运行选项启动 PowerShell。
要更改您的执行策略:
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
例如:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
设置特定范围内的执行策略:
Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
例如:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
更改执行策略的命令可以成功,但仍然不会更改有效的执行策略。
例如,为本地计算机设置执行策略的命令可能会成功,但会被当前用户的执行策略覆盖。
删除执行策略
要删除特定范围的执行策略,请将执行策略设置为未定义。
例如,要删除本地计算机所有用户的执行策略:
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine
要删除范围的执行策略:
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
如果在任何范围内未设置执行策略,则有效的执行策略为受限,这是 Windows 客户端的默认执行策略。
为一个会话设置不同的策略
您可以使用 pwsh.exe
的 ExecutionPolicy 参数为新的 PowerShell 会话设置执行策略。该策略仅影响当前会话和子会话。
要设置新会话的执行策略,请在命令行(例如 cmd.exe
)或从 PowerShell 启动 PowerShell,然后使用 的 ExecutionPolicy 参数pwsh.exe
设置执行策略。
例如:
pwsh.exe -ExecutionPolicy AllSigned
您设置的执行策略不存储在注册表中。相反,它存储在 $env:PSExecutionPolicyPreference
环境变量中。当您关闭设置策略的会话时,该变量将被删除。您无法通过编辑变量值来更改策略。
在会话期间,为会话设置的执行策略优先于在注册表中为本地计算机或当前用户设置的执行策略。但是,它并不优先于使用组策略设置的执行策略。
使用组策略来管理执行策略
您可以使用打开脚本执行组策略设置来管理企业中计算机的执行策略。组策略设置会覆盖所有范围内 PowerShell 中设置的执行策略。
打开脚本执行策略设置如下:
如果禁用打开脚本执行,脚本将不会运行。这相当于受限执行策略。
如果启用打开脚本执行,则可以选择执行策略。组策略设置相当于以下执行策略设置:
Allow all scripts无限制
Allow local scripts and remote signed scriptsRemoteSigned
Allow only signed scriptsAllSigned
如果未配置打开脚本执行,则不会产生任何效果。 PowerShell中设置的执行策略有效。
PowerShellExecutionPolicy.adm 和 PowerShellExecutionPolicy.admx 文件将打开脚本执行策略添加到组策略编辑器中以下路径中的计算机配置和用户配置节点。
对于 Windows XP 和 Windows Server 2003:
Administrative Templates\Windows Components\Windows PowerShell
对于 Windows Vista 和更高版本的 Windows:
Administrative Templates\Classic Administrative Templates\Windows Components\Windows PowerShell
“计算机配置”节点中设置的策略优先于“用户配置”节点中设置的策略。
有关详细信息,请参阅 about_Group_Policy_Settings。
执行策略优先级
在确定会话的有效执行策略时,PowerShell 按以下优先顺序评估执行策略:
Group Policy: MachinePolicy
Group Policy: UserPolicy
Execution Policy: Process (or pwsh.exe -ExecutionPolicy)
Execution Policy: LocalMachine
Execution Policy: CurrentUser
管理已签名和未签名的脚本
在 Windows 中,Internet Explorer 和 Microsoft Edge 等程序会向下载的文件添加备用数据流。这将该文件标记为“来自 Internet”。如果您的 PowerShell 执行策略是RemoteSigned,则 PowerShell 将不会运行从 Internet 下载的未签名脚本(包括电子邮件和即时消息程序)。
您可以对脚本进行签名或选择运行未签名的脚本,而无需更改执行策略。
从 PowerShell 3.0 开始,您可以使用 Get-Item
cmdlet 的 Stream 参数来检测因从 Internet 下载而被阻止的文件。使用 Unblock-File
cmdlet 取消阻止脚本,以便您可以在 PowerShell 中运行它们。
有关详细信息,请参阅 about_Signing、Get-Item 和 Unblock-File。
笔记
其他下载文件的方法可能不会将文件标记为来自 Internet 区域。一些例子包括:
curl.exe
Invoke-RestMethod
Invoke-WebRequest
Windows Server Core 和 Window Nano Server 上的执行策略
在某些条件下,当 PowerShell 6 在 Windows Server Core 或 Windows Nano Server 上运行时,执行策略可能会失败并出现以下错误:
AuthorizationManager check failed.
At line:1 char:1
+ C:\scriptpath\scriptname.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PowerShell 使用 Windows 桌面外壳 (explorer.exe
) 中的 API 来验证脚本文件的区域。 Windows Shell 在 Windows Server Core 和 Windows Nano Server 上不可用。
如果 Windows 桌面 Shell 不可用或无响应,您也可能在任何 Windows 系统上收到此错误。例如,在登录期间,PowerShell 登录脚本可能会在 Windows 桌面准备就绪之前开始执行,从而导致失败。
使用ByPass或AllSigned执行策略不需要区域检查,从而避免了该问题。
参见
- about_Environment_Variables
- about_Group_Policy_Settings
- 关于_Pwsh
- about_签名
- Get-ExecutionPolicy
- Set-ExecutionPolicy
- Get-Item
- Unblock-File
- 上一篇:[玩转系统] 关于实验特性
- 下一篇:[玩转系统] 关于环境变量
猜你还喜欢
- 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