PowerShell 6执行策略 描述PowerShell的执行策略,并解释如何管理它们。 参考:https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-6 一、 PowerShell的执行策略如下: 1. AllSigned (所有已签名) 该策略含义描述: 1)脚本可以运行。 2)要求所有脚本和配置文件都由受信任的发行者签名,包括在本地计算机上编写的脚本。 3)在从尚未被归类为受信任或不受信任的发布者中运行脚本之前,将提示您。 4)冒险运行已签名但恶意的脚本。 2. Bypass (旁道,支路; 迂回管道;) 该策略含义描述: 1)没有任何东西被阻止,没有任何警告或提示。 2)此执行策略设计为如下: 将PowerShell脚本内置到更大的应用程序中的配置; PowerShell是具有自己安全模型的程序的基础的配置。 3. Default (默认) 该策略含义描述: 1)设置为默认执行策略。 2)Windows客户端采用 Restricted(受限制的)策略。 3)Windows服务器采用 RemoteSigned(远程签名) 策略。 4. RemoteSigned(远程签名) 该策略含义描述: 1)Windows服务器计算机的默认执行策略。 2)脚本可以运行。 3)需要从受信任的发布者那里对从因特网下载的脚本和配置文件进行数字签名, 这些文件包括电子邮件和即时消息程序。 4)不要求在本地计算机上写入且未从Internet下载的脚本上的数字签名。 5)运行从internet下载的没有签名的脚本,如果脚本已解除阻塞。 例如使用Unblock-File cmdlet。 6)冒险运行从除Internet之外的源的未签名的脚本,以及已签名但恶意的脚本。 5. Restricted (受限制的) 该策略含义描述: 1)Windows客户端计算机的默认执行策略。 2)允许单独的命令,但不会运行脚本。 3)防止所有脚本文件的运行,包括格式化和配置文件(.ps1xml), 模块脚本文件(.psm1)和PowerShell配置文件(.ps1)。 6. Undefined (未阐明的; 未限定的;) 该策略含义描述: 1)当前作用域中没有设置执行策略集。 2)如果所有作用域中的执行策略为 Undefined,那么有效执行策略是Restricted, 这是默认的执行策略。 7. Unrestricted (无限制的; 自由的;) 该策略含义描述: 1)非windows计算机的默认执行策略,不能更改. 2)未签名的脚本可以运行。存在运行恶意脚本的风险。 3)在运行从Internet下载的脚本和配置文件之前警告用户。 备注: 在不区分来自Internet路径的 通用命名约定(UNC) 路径的系统中, UNC路径所标识的脚本可能不允许,在使用RemoteSigned执行策略时,运行。 二、 执行策略范围/作用域 您可以设置仅在特定范围内有效的执行策略。 作用域的有效值是MachinePolicy, UserPolicy, Process, CurrentUser, 和 LocalMachine。 设置执行策略时,LocalMachine是默认的。 作用域值按优先级顺序列出。 优先的策略在当前会话中是有效的,即使更严格的策略设置在较低的优先级。 1. MachinePolicy 范围/作用域 为计算机的所有用户设置组策略。 2. UserPolicy 范围/作用域 为计算机当前用户设置组策略。 3. Process 范围/作用域 进程范围仅影响当前PowerShell会话。 执行策略保存在环境变量$env:PSExecutionPolicyPreference中,而不是注册表。 关闭PowerShell会话时,变量和值将被删除。 4. CurrentUser 范围/作用域 执行策略只影响当前用户。 它存储在 HKEY_CURRENT_USER 注册表子项中。 5. LocalMachine 范围/作用域 执行策略影响当前计算机上的所有用户。 它存储在 HKEY_LOCAL_MACHINE 注册表子项中。 三、 获取你的执行策略。 1. 要获得当前 PowerShell 会话的有效执行策略,请使用Get-ExecutionPolicy cmd命令。 PS D:\vue.js学习> Get-ExecutionPolicy Restricted 2. 要获取影响当前会话的所有执行策略,并按优先顺序显示这些策略: PS D:\vue.js学习> Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Undefined 这样,有效的执行策略,是系统默认的执行策略。 如果所有作用域中的执行策略为 Undefined,那么有效执行策略是Restricted, 这是默认的执行策略。 注: 作用域值按优先级顺序列出。 优先的策略在当前会话中是有效的,即使更严格的策略设置在较低的优先级。 3. 以下命令获取当前用户范围的执行策略: Get-ExecutionPolicy -Scope CurrentUser 3. 获取当前用户范围的执行策略。 PS D:\vue.js学习> Get-ExecutionPolicy -Scope CurrentUser Undefined 三、 更改您的执行策略 1. 命令:Set-ExecutionPolicy 立即生效,无需重启powerShell。 如果您为作用域LocalMachine或CurrentUser设置了执行策略, 则更改将保存在注册表中,并在再次更改之前保持有效。 如果您为Process范围设置了执行策略,则它不会保存在注册表中。 执行策略将保留到当前进程和任何子进程关闭为止。 备注: 在windows vista和更高版本的windows中, 若要运行更改本地计算机LocalMachine作用域的执行策略的命令, 请使用“以管理员身份运行”选项启动PowerShell。 2. 更改你的执行策略,默认作用域LocalMachine: 语法:Set-ExecutionPolicy -ExecutionPolicy <PolicyName> 示例:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned Set-ExecutionPolicy -ExecutionPolicy Unrestricted (经测试,在win10 PowerShell中,被拒绝。) Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser(经测试,在win10 PowerShell中,可行。) 若要在特定范围内设置执行策略,请执行以下操作: Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 注: 更改执行策略的命令可以成功,但可能仍然不能更改有效的执行策略。 例如,设置本地计算机执行策略的命令可以成功,但被当前用户的执行策略覆盖。 四、 移除你的执行策略 若要删除特定范围的执行策略,请将执行策略设置为Undefined。 例如,要删除本地计算机的所有用户的执行策略: Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine 若要删除某个作用域的执行策略,请执行以下操作: Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser 如果在任何范围内没有设置执行策略, 则有效的执行策略是Restricted, 这是windows客户端的默认设置。
PowerShell -6执行策略.txt
最新推荐文章于 2023-05-26 16:42:07 发布