PowerShell系列(六):PowerShell脚本执行策略梳理

简介: 【2月更文挑战第1篇】PowerShell 脚本执行策略用于控制何时以及何种方式执行 PowerShell 脚



image.jpeg

PowerShell 脚本执行策略用于控制何时以及何种方式执行 PowerShell 脚本。通过执行策略可以限制 PowerShell 脚本的执行范围,为系统管理员提供一定的安全保障。策略可以限制执行脚本的用户、限制执行脚本的来源等等。这些策略可以在计算机本地或组策略中进行配置。最终保护计算机免受恶意脚本和非法操作的侵害。

今天给大家讲解PowerShell脚本执行策略相关的知识!

1、执行策略等级

               AllSigned:要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本;从尚未分类为受信任或不受信任的发布者运行脚本之前,需要确认是否执行。

               Bypass:脚本执行没有任何限制

               RemoteSigned:本地计算机上的本地脚本,不需要数字签名直接允许;从Internet或其他计算机下载的脚本,需要脚本必须经过数字签名才能运行。

               Restricted:允许单个命令,但不允许脚本,它会阻止运行所有脚本文件。

               Undefined:当前范围没有执行策略。简单来说如果所有范围的执行策略都是Undefined的话,实际使用的测试和Default策略保持一致。

               Default:默认执行策略,Window客户端为Restricted;Windows服务器为RemoteSigned 。

               Unrestricted:脚本运行不受签名限制,如果脚本不来自本地 Intranet 区域的脚本和配置文件,运行之前会有警告

2、执行策略范围

               MachinePolicy:由组策略为计算机的所有用户设置

               UserPolicy:由计算机当前用户的组策略设置

               Process:范围 Process 仅影响当前 PowerShell 会话;执行策略保存在环境变量 $env:PSExecutionPolicyPreference中,而不是注册表中。 关闭 PowerShell 会话时,变量和值将被删除。

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

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

image.jpeg

3、执行策略命令语法格式

Set-ExecutionPolicy
   [-ExecutionPolicy] <ExecutionPolicy>
   [[-Scope] <ExecutionPolicyScope>]
   [-Force]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

参数说明:

               -ExecutionPolicy :指定执行策略

               -Scope:指定受执行策略影响的范围。 默认作用域为 LocalMachine。

               -Force:调整所有脚本提示,建议谨慎使用该参数。默认值为 None,可以指定为 False

               -WhatIf:显示运行该 cmdlet 时会发生什么情况。默认值为False。

               -Confirm:提示你在运行 cmdlet 之前进行确认。默认值是False。

4、执行策略常用命令

获取当前执行策略

Get-ExecutionPolicy

image.png

获取影响当前会话的所有执行策略

Get-ExecutionPolicy -List

image.png

调整脚本执行策略

Set-ExecutionPolicy ALLSIGNED

image.png

删除执行策略

若要删除特定范围的执行策略,请将执行策略设置为 Undefined。

注意:Windows 客户端的默认策略为Restricted

#删除本地计算机所有用户的执行策略
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine
相关文章
|
5月前
|
安全 API
Powershell脚本分析
Powershell脚本分析
|
3月前
|
运维 开发工具 Windows
PowerShell系列(五):PowerShell通过脚本方式运行笔记
【1月更文挑战第7天】方便迁移,比如在之前工作经验积累下来的运维脚本,可以保存下来。如果业务场景用的到的话,直接文件拷贝过来就可以运行。
|
4月前
|
前端开发 微服务 Windows
PowerShell 命令窗口执行 pnpm 命令报错 无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本
PowerShell 命令窗口执行 pnpm 命令报错 无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本
|
7月前
|
SQL 数据库
PowerShell 脚本必备命令
PowerShell 脚本必备命令
|
8月前
|
C# C++
PowerShell脚本中实现限时读取用户输入
突然想到之前倒腾PowerShell的时候实现了一个限时读取用户输入的函数
141 0
|
Windows
powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题
powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题
1532 0
|
资源调度
关于vscode,powershell运行yarn报错禁止运行脚本解决办法
关于vscode,powershell运行yarn报错禁止运行脚本解决办法
152 0
关于vscode,powershell运行yarn报错禁止运行脚本解决办法
|
资源调度
PowerShell yarn : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\yarn.ps1,因为在此系统因为在此系统上禁止运行脚本。
PowerShell yarn : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\yarn.ps1,因为在此系统因为在此系统上禁止运行脚本。
177 0
PowerShell yarn : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\yarn.ps1,因为在此系统因为在此系统上禁止运行脚本。
|
监控 Windows
Windows Server端口监控之powershell脚本
powershell检测端口并重启程序
603 0
|
Windows
window powershell设置脚本的执行权限
Windows PowerShell 现用执行策略很可能是Restricted(默认设置)。 Restricted 执行策略不允许任何脚本运行。若要了解计算机上的现用执行策略,请键入:get-executionpolicy 。
1643 0