Windows PowerShell 执行策略

1,Power Shell实行时,出现如下错误

1
2
3
4
5
6
.\test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル D:\Work\test.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .\test.ps1
+ ~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

这是因为 Windows PowerShell 执行策略的原因。

2,about_Execution_Policies简介

使用 Windows PowerShell 执行策略,可以确定 Windows PowerShell
加载配置文件和运行脚本的条件。

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

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

执行策略并不是限制用户操作的安全系统。例如,当无法运行脚本时,
用户可通过在命令行中键入脚本内容而轻松规避某个策略。执行策略的
真正用途是帮助用户设置一些基本规则,并防止用户无意中违反这些规则。

3,WINDOWS POWERSHELL 执行策略

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Windows PowerShell 执行策略如下:

"Restricted"是默认策略。

Restricted
- 默认执行策略。

- 允许单个命令运行,但不能运行脚本。

- 阻止所有脚本文件的运行,包括格式和配置文件 (.ps1xml)、模块脚本文件 (.psm1)
和 Windows PowerShell 配置文件 (.ps1)。

AllSigned
- 可以运行脚本。

- 要求所有脚本和配置文件由可信发布者签名,包括在本地计算机上编写的脚本。

- 在运行来自尚未分类为可信或不可信发布者的脚本之前进行提示。

- 运行来自 Internet 以外的源的未签名脚本及已签名但有恶意的脚本存在风险。

RemoteSigned
- 可以运行脚本。

- 要求可信发布者对从 Internet(包括电子邮件和即时消息程序)下载的脚本和配置文件
进行数字签名。

- 不要求对已经运行和已在本地计算机编写的脚本(不是从 Internet 下载的脚本)进行数
字签名。

- 面临运行已签名但有恶意的脚本带来的风险。

Unrestricted
- 可以运行未签名脚本。(面临运行恶意脚本所带来的风险。)

- 在运行从 Internet 下载的脚本和配置文件之前警告用户。

Bypass
- 不阻止任何执行项,不显示警告和提示。

- 此执行策略设计用于两种配置:一种是 Windows PowerShell 脚本内置于一个较大的
应用程序中;一种是 Windows PowerShell 成为拥有自身安全模型的某个程序的基础。

Undefined
- 当前作用域中未设置执行策略。

- 如果所有作用域中的执行策略为 Undefined,则有效执行策略为 Restricted,该策略
是默认执行策略。

4,问题解决

在powershell中执行命令

Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned

Author: jimmy367
Link: http://www.ohtudou.com/2020/03/22/Execution-Policies/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
支付宝打赏