【发布时间】:2019-08-02 19:28:30
【问题描述】:
我充分理解 ExecutionPolicy 在 PowerShell 中的工作原理。我见过和做过的大部分事情都是如何禁用它。甚至还有一个命令行标志可以禁用它 (powershell -ExecutionPolicy Unrestricted ...)。
所以我的问题是为什么,而不是如何。为什么这甚至是一个功能?以我的经验,这更像是一个错误。它对我做的唯一一件事就是让我烦恼,在我看到“无法加载,因为在这个系统上禁用脚本的执行”错误之间,当我记得那个 -ExecutionPolicy 标志时。
为什么 PowerShell 会有这样的功能?这就像一个防盗警报器,在前门旁边的建筑物外面有一个开/关开关。
【问题讨论】:
-
使用 PowerShell,您将关闭开关。窃贼不能。无限制也不是应该推荐的。 RemoteSigned 更安全。
-
是什么阻止了我们的类似窃贼使用相同的命令行开关?
-
对这个问题的任何答案都可能基于意见,除非 Microsoft 员工站出来发布明确的答案。投票结束。
-
文档中有是一些信息,不同可用设置的描述告诉你他们希望你如何处理它 - technet.microsoft.com/en-us/library/hh847748.aspx
-
正如blog 认为的那样,执行策略不被视为安全功能,而是一种防止自爆的功能。这与我之前听到的一致。该博客列出了 15 种绕过执行策略的方法,表明它不是安全功能。我使用的命令行开关的一个用例是创建一个用 PS 编写的应用程序,供非 PS 精通用户使用。我不希望用户必须了解
set-executionpolicy,因此我将脚本包装在 .CMD (.bat) 文件中并使用了该选项。
标签: powershell executionpolicy