重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 105|回复: 0

windows powershell 执行策略的调整

[复制链接]
发表于 2022-9-8 10:45:49 | 显示全部楼层 |阅读模式
一、Windows PowerShell 执行策略允许你确定 Windows PowerShell 加载配置文件并运行脚本的条件。


你可以为本地计算机、当前用户或某个特定的会话设置执行策略。也可以使用组策略设置为计算机和用户设置执行策略。


本地计算机和当前用户的执行策略存储在注册表中。无需在 Windows PowerShell 配置文件中设置执行策略。某个特定会话的执行策略仅存储在内存中,当关闭会话时,该执行策略会丢失。


执行策略不是限制用户操作的安全系统。例如,当用户无法运行脚本时,可以通过在命令行键入脚本内容轻松绕过策略。相反,执行策略帮助用户设置基本规则并阻止他们无意中违反规则。


二、Windows PowerShell 执行策略如下所示:
默认执行策略为“Restricted”。


1、当执行策略为 Restricted 时:


win8 ,win10 中默认执行 Restricted 的策略。
允许单独的命令,但不会运行脚本。
阻止所有脚本文件的运行。包括格式设置文件和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 和 Windows PowerShell 配置文件 (.ps1)。
2、当执行策略为 AllSigned 时:


脚本可以运行。
要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。
会在运行来自某类发布者(即你尚未归类为受信任或不受信任的发布者)的脚本之前提示你。
存在运行已签名但却是恶意的脚本的风险。
3、当执行策略为 REMOTESIGNED 时:


脚本可以运行。
要求从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)具有受信任的发布者的数字签名。
不要求你在本地计算机上编写的脚本(不是从 Internet 下载的)具有数字签名。
如果脚本已被取消阻止(比如通过使用 Unblock-File cmdlet),则运行从 Internet 下载但未签名的脚本。
存在运行来自 Internet 之外的未签名脚本和已签名但却是恶意的脚本的风险。
4、当执行策略为 UNRESTRICTED 时:


未签名的脚本可以运行。(这存在运行恶意脚本的风险。)
在运行从 Internet 下载的脚本和配置文件之前提醒用户。
5、当执行策略为 BYPASS 时:


不阻止任何内容,并且没有任何警告或提示。
该执行策略旨在用于后述配置:在其中 Windows PowerShell 被内置于一个更大的应用程序中,或者在其中 Windows PowerShell 是具有其自己安全模式的程序的基础。
6、当执行策略为 UNDEFINED 时:


当前作用域中未设置执行策略。
如果所有作用域中的执行策略都是 Undefined,则有效的执行策略是 Restricted,它是默认执行策略。
注意:在不区分通用命名约定 (UNC) 路径和 Internet 路径的系统上,可能不允许使用 RemoteSigned 执行策略运行由 UNC 路径标识的脚本。
三、执行策略作用域:
你可以设置仅在某个特定作用域中有效的执行策略。


Scope 的有效值为 Process、CurrentUser 和 LocalMachine。设置执行策略时,LocalMachine 是默认值。


按优先顺序列出这些 Scope 值。


1、 PROCESS


执行策略仅影响当前会话(当前 Windows PowerShell 进程)。


执行策略存储在 $env:PSExecutionPolicyPreference 环境变量中,不是存储在注册表中,并且当关闭会话时会删除它。不能通过编辑变量值来更改策略。


2、CURRENTUSER


执行策略仅影响当前用户。它存储在 HKEY_CURRENT_USER 注册表子项中。


3、LOCALMACHINE


执行策略会影响当前计算机上的所有用户。它存储在 HKEY_LOCAL_MACHINE 注册表子项中。


优先的策略在当前会话中有效,即使在较低优先级上设置了更加严格的策略。


有关详细信息,请参阅 Set-ExecutionPolicy。


四、获取你的执行策略:
(若要获取在当前会话中有效的 Windows PowerShell 执行策略,则使用 Get-ExecutionPolicy cmdlet。)


1、获取当前执行策略的命令: Get-ExecutionPolicy


2、若要获取影响当前会话的所有执行策略,并按优先顺序显示它们,请键入:Get-ExecutionPolicy -List


3、若要获取为某个特定作用域设置的执行策略,请使用 Get-ExecutionPolicy 的 Scope 参数。


五、执行策略的更改:
1、若要更改你计算机上的 Windows PowerShell 执行策略,请使用: Set-ExecutionPolicy cmdlet


       更改会立即生效,你无需重新启动 Windows PowerShell。


(1)、如果你设置本地计算机(默认)或当前用户的执行策略,更改会保存在注册表中,并且在再次更改之前会保持有效。


(2)、如果你设置当前进程的执行策略,则更改不会保存在注册表中。它会保留,直到关闭当前进程和任何子进程。


注意:在 Windows Vista 和 Windows 的更高版本中,若要运行更改本地计算机(默认)的执行策略的命令,请使用“以管理员身份运行”选项启动 Windows PowerShell。


2、若要更改你的执行策略,请键入:


        Set-ExecutionPolicy -ExecutionPolicy <PolicyName>


如:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned


3、若要设置某个特定作用域中的执行策略,请键入:


        Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>


如:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser


4、更改执行策略的命令会成功,但有可能仍然不会更改有效的执行策略。


例如,用于设置本地计算机的执行策略的命令可能成功,但会被当前用户的执行策略覆盖。



六、执行策略的删除:
若要删除某个特定作用域的执行策略,则将执行策略的值设置为 Undefined。


     例如,若要删除本地计算机的所有用户的执行策略,请键入:


                        Set-ExecutionPolicy Undefined


    或者键入:Set-ExecutionPolicy Undefined -scope LocalMachine


如果未在任何作用域中设置执行策略,则有效的执行策略是 Restricted,它是默认执行策略。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2022-12-2 02:03 , Processed in 0.096803 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表