[玩转系统] 设置执行策略 (Microsoft.PowerShell.Security)
作者:精品下载站 日期:2024-12-14 02:09:05 浏览:16 分类:玩电脑
设置执行策略 (Microsoft.PowerShell.Security)
Set-ExecutionPolicy
模块 :Microsoft.PowerShell.Security设置 Windows 计算机的 PowerShell 执行策略。
句法
Set-ExecutionPolicy
[-ExecutionPolicy] <ExecutionPolicy>
[[-Scope] <ExecutionPolicyScope>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
描述
Set-ExecutionPolicy
cmdlet 更改 Windows 计算机的 PowerShell 执行策略。有关更多信息,请参阅 about_Execution_Policies。
从适用于非 Windows 计算机的 PowerShell 6.0 开始,默认执行策略为 Unrestricted
并且无法更改。 Set-ExecutionPolicy
cmdlet 可用,但 PowerShell 显示一条控制台消息,表明它不受支持。
执行策略是 PowerShell 安全策略的一部分。执行策略确定您是否可以加载配置文件(例如 PowerShell 配置文件)或运行脚本。并且,脚本在运行之前是否必须进行数字签名。
Set-ExecutionPolicy
cmdlet 的默认范围是 LocalMachine
,它会影响使用该计算机的每个人。要更改 LocalMachine
的执行策略,请使用以管理员身份运行启动 PowerShell。
要显示每个范围的执行策略,请使用 Get-ExecutionPolicy -List
。要查看 PowerShell 会话的有效执行策略,请使用不带参数的 Get-ExecutionPolicy
。
示例
示例1:设置执行策略
此示例演示如何设置本地计算机的执行策略。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine RemoteSigned
Set-ExecutionPolicy
cmdlet 使用ExecutionPolicy 参数指定RemoteSigned
策略。 Scope 参数指定默认范围值 LocalMachine
。要查看执行策略设置,请使用带有 List 参数的 Get-ExecutionPolicy
cmdlet。
示例 2:设置与组策略冲突的执行策略
此命令尝试将 LocalMachine
范围的执行策略设置为 Restricted
。 LocalMachine
限制性更强,但不是有效的策略,因为它与组策略冲突。 Restricted
策略写入注册表配置单元 HKEY_LOCAL_MACHINE
。
PS> Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine
Set-ExecutionPolicy : PowerShell updated your local preference successfully, but the setting is
overridden by the Group Policy applied to your system. Due to the override, your shell will retain
its current effective execution policy of "AllSigned". Contact your Group Policy administrator for
more information. At line:1 char:20 + Set-ExecutionPolicy <<<< restricted
PS> Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\PowerShell\ShellIds
Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\ShellIds
Name Property
---- --------
Microsoft.PowerShell Path : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ExecutionPolicy : Restricted
ScriptedDiagnostics ExecutionPolicy : Unrestricted
Set-ExecutionPolicy
cmdlet 使用ExecutionPolicy 参数指定Restricted
策略。 Scope 参数指定默认范围值 LocalMachine
。 Get-ChildItem
cmdlet 使用 Path 参数和 HKLM:
驱动器来指定注册表位置。
示例 3:将执行策略从远程计算机应用到本地计算机
此命令从远程计算机获取执行策略对象并在本地计算机上设置策略。 Get-ExecutionPolicy
沿管道发送一个 Microsoft.PowerShell.ExecutionPolicy 对象。 Set-ExecutionPolicy
接受管道输入,不需要 ExecutionPolicy 参数。
Invoke-Command -ComputerName Server01 -ScriptBlock { Get-ExecutionPolicy } | Set-ExecutionPolicy
Invoke-Command
cmdlet 在本地计算机上执行,并将 ScriptBlock 发送到远程计算机。 ComputerName 参数指定远程计算机Server01。 ScriptBlock 参数在远程计算机上运行 Get-ExecutionPolicy
。 Get-ExecutionPolicy
对象沿着管道发送到Set-ExecutionPolicy
。 Set-ExecutionPolicy
将执行策略应用于本地计算机的默认范围 LocalMachine
。
示例 4:设置执行策略的范围
此示例演示如何为指定范围 CurrentUser
设置执行策略。 CurrentUser
范围仅影响设置此范围的用户。
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
Set-ExecutionPolicy
使用ExecutionPolicy 参数指定AllSigned
策略。 Scope 参数指定CurrentUser
。要查看执行策略设置,请使用带有 List 参数的 Get-ExecutionPolicy
cmdlet。
用户的有效执行策略变为AllSigned
。
示例5:删除当前用户的执行策略
此示例演示如何使用 Undefined
执行策略删除指定范围的执行策略。
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
Set-ExecutionPolicy
使用ExecutionPolicy 参数指定Undefined
策略。 Scope 参数指定CurrentUser
。要查看执行策略设置,请使用带有 List 参数的 Get-ExecutionPolicy
cmdlet。
示例 6:设置当前 PowerShell 会话的执行策略
Process
范围仅影响当前的 PowerShell 会话。执行策略保存在环境变量 $env:PSExecutionPolicyPreference
中,并在会话关闭时删除。
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope Process
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process AllSigned
CurrentUser RemoteSigned
LocalMachine RemoteSigned
Set-ExecutionPolicy
使用ExecutionPolicy 参数指定AllSigned
策略。 Scope 参数指定值Process
。要查看执行策略设置,请使用带有 List 参数的 Get-ExecutionPolicy
cmdlet。
示例 7:取消阻止脚本以在不更改执行策略的情况下运行它
此示例显示 RemoteSigned
执行策略如何阻止您运行未签名的脚本。
最佳实践是在使用 Unblock-File
cmdlet 之前读取脚本代码并验证其安全性。 Unblock-File
cmdlet 取消阻止脚本,以便它们可以运行,但不会更改执行策略。
PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS> Unblock-File -Path .\Start-ActivityTracker.ps1
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
Task 1:
Set-ExecutionPolicy
使用ExecutionPolicy 参数指定RemoteSigned
策略。该策略是为默认范围 LocalMachine
设置的。
Get-ExecutionPolicy
cmdlet 显示 RemoteSigned
是当前 PowerShell 会话的有效执行策略。
Start-ActivityTracker.ps1 脚本从当前目录执行。该脚本被 RemoteSigned` 阻止,因为该脚本未经过数字签名。
对于此示例,脚本的代码经过审查并验证为可以安全运行。 Unblock-File
cmdlet 使用Path 参数来取消阻止脚本。
为了验证 Unblock-File
没有更改执行策略,Get-ExecutionPolicy
显示有效的执行策略 RemoteSigned
。
脚本 Start-ActivityTracker.ps1
从当前目录执行。该脚本开始运行,因为它已被 Unblock-File
cmdlet 解除阻止。
参数
-Confirm
在运行 cmdlet 之前提示您进行确认。
类型 :SwitchParameter
别名:cf
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-ExecutionPolicy
指定执行策略。如果没有组策略并且每个作用域的执行策略设置为未定义
,则受限
将成为对所有用户有效的策略。
可接受的执行策略值如下:
全部签名
。要求所有脚本和配置文件均由受信任的发布者签名,包括在本地计算机上编写的脚本。- 绕过。没有任何内容被阻止,也没有警告或提示。
默认
。设置默认执行策略。对于 Windows 客户端,Restricted
或对于 Windows 服务器,RemoteSigned
。远程签名
。要求从 Internet 下载的所有脚本和配置文件均由受信任的发布者签名。 Windows 服务器计算机的默认执行策略。受限
。不加载配置文件或运行脚本。 Windows 客户端计算机的默认执行策略。未定义
。没有为范围设置执行策略。从未由组策略设置的范围中删除分配的执行策略。如果所有作用域内的执行策略均为未定义
,则有效执行策略为Restricted
。无限制
。从 PowerShell 6.0 开始,这是非 Windows 计算机的默认执行策略,无法更改。加载所有配置文件并运行所有脚本。如果您运行从 Internet 下载的未签名脚本,系统会在运行前提示您授予权限。
ExecutionPolicy
接受的值:AllSigned、绕过、默认、RemoteSigned、受限、未定义、无限制
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-Force
抑制所有确认提示。请谨慎使用此参数以避免意外结果。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Scope
指定受执行策略影响的范围。默认范围是LocalMachine
。
有效的执行策略由优先顺序决定,如下:
MachinePolicy
- 由组策略为计算机的所有用户设置UserPolicy
- 由计算机当前用户的组策略设置Process
- 仅影响当前的 PowerShell 会话LocalMachine
- 影响计算机所有用户的默认范围CurrentUser
- 仅影响当前用户
Process
作用域仅影响当前的 PowerShell 会话。执行策略保存在环境变量 $env:PSExecutionPolicyPreference
中,而不是注册表中。当 PowerShell 会话关闭时,变量和值将被删除。
CurrentUser
范围的执行策略写入注册表配置单元 HKEY_LOCAL_USER
。
LocalMachine
范围的执行策略被写入注册表配置单元 HKEY_LOCAL_MACHINE
。
执行策略范围
接受的值:当前用户、本地机器、机器策略、进程、用户策略
位置:1
默认值:LocalMachine
必需的:False
接受管道输入:True
接受通配符:False
-WhatIf
显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。
类型 :SwitchParameter
别名:wi
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
输入
执行策略
您可以通过管道将执行策略对象传递给此 cmdlet。
字符串
您可以通过管道将包含执行策略名称的字符串传递给此 cmdlet。
输出
无
此 cmdlet 不返回任何输出。
笔记
Set-ExecutionPolicy
不会更改 MachinePolicy
和 UserPolicy
范围,因为它们是由组策略设置的。
Set-ExecutionPolicy
不会覆盖组策略,即使用户首选项比策略更具限制性也是如此。
如果为计算机或用户启用了组策略打开脚本执行,则用户首选项会保存,但不会生效。 PowerShell 显示一条消息来解释冲突。
猜你还喜欢
- 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