4

我想在 Windows 上尝试Scoop,它的文档通过运行询问“必须为您的用户帐户启用 PowerShell”

PS > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

当我运行命令时,我看到一条警告说

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"):

应该采取哪些措施来降低这种风险?在安装 Scoot 之后以及在运行 Scoop 命令之间将策略重置回 Undefined 会更好吗?

4

1 回答 1

3

设置的风险很小RemoteSigned。基本上,此模式允许您执行本地未签名脚本(您编写的脚本),而来自远程源的脚本必须由受信任的机构签名。我将在下面解释每个执行策略。


  • AllSigned:脚本可以运行,但无论脚本来自何处,它们都必须由受信任的发布者签名。风险可能包括运行由受信任机构签名的恶意脚本(这不太可能,但并非不可能)。
  • Bypass:不阻止任何脚本的执行。专为具有替代安全模型的配置而设计。不显示与脚本执行相关的警告或提示。
  • Default:这Restricted适用于 Windows 的桌面版和RemoteSigned服务器。
  • RemoteSigned:本地脚本可以运行(例如您自己编写的脚本),但从互联网下载的脚本必须由受信任的发布者签名。风险可能包括运行来自 Internet 以外的来源的恶意未签名脚本,或运行由受信任的发布者签名的恶意脚本。您可以使用Unblock-Filecmdlet启用从 Internet 下载的脚本。
  • Restricted:Powershell 可以交互运行,但不能执行脚本。无法加载 Powershell 模块,因为所有形式的脚本文件都被阻止。我不确定管理单元(可用作 DLL 的 Powershell 插件)是否可以与此模式一起使用。
  • Undefined:这意味着没有配置执行策略,并且会像Default设置一样运行。
  • Unrestricted:运行所有脚本,无论它们是否已签名。这是非 Windows 操作系统唯一有效的执行策略。运行源自本地 Intranet 外部的脚本时会警告您。

至于降低风险?关于不运行不受信任的代码的用户教育(如果这是针对企业的话)将是一个开始。您可能已经准备好 A/V 和反恶意软件解决方案,并且您应该将机密安全地存储在它们所属的凭证保险库中。RemoteSigned这是一个很好的设置策略,在大多数情况下,这将是相当宽松的,同时仍为您提供一些针对恶意远程脚本的基本安全性。

于 2019-11-15T14:30:13.220 回答