gpt4 book ai didi

powershell - 为什么 PowerShell 有执行策略?

转载 作者:行者123 更新时间:2023-12-01 00:45:05 25 4
gpt4 key购买 nike

我充分了解 ExecutionPolicy 在 PowerShell 中的工作原理。我所看到和所做的大部分是如何禁用它。甚至还有一个命令行标志来禁用它( powershell -ExecutionPolicy Unrestricted ...)。

所以我的问题是 为什么 ,不是 怎么样 .为什么这甚至是一个功能?根据我的经验,这更像是一个错误功能;它对我所做的唯一一件事就是惹恼我,在我看到“无法加载,因为在此系统上禁用了脚本的执行”错误和当我想起那件事时 -ExecutionPolicy旗帜。

为什么 PowerShell 会有这样的功能吗?它就像一个防盗警报器,在建筑物的前门旁边有一个开/关开关。

最佳答案

回到 ActiveX 的黑暗日子,如果用户真的想从不受信任的来源运行 ActiveX 控件,他们可以这样做。 Internet Explorer 发出的警告是为了阻止用户无意中运行恶意代码,而不是阻止该代码在任何情况下运行。
归根结底,它是用户的浏览器、用户的计算机,他们应该控制它所做的一切。浏览器只是说'嘿,这可能很糟糕......'
完全相同的原则适用于 PowerShell 的执行策略。一旦 PowerShell 运行,它就可以访问用户有权访问的所有资源。
那么,作为管理员,为什么我不能阻止任何未签名的脚本运行?
完全阻止用户运行脚本是不可能管理的,因为如果他们有权访问 PowerShell shell,他们就可以逐行运行脚本中的命令。
作为管理员,通过授予用户对 PowerShell 的访问权限,您信任该用户运行 PowerShell 代码。无论是脚本形式,还是坐在 PowerShell 提示符下进行破解。
执行策略的概念是一种确保脚本来自何处的方法。如果用户在机器上安装了适当的证书,并用它签署了一个脚本,那么 PowerShell 将信任该脚本。 PowerShell 将信任脚本,因为用户信任证书,因为证书在用户证书存储中。如果该用户随后运行了一个被认为是可信的脚本,但没有由可信证书签名,它会警告用户该脚本不受信任。
一旦进入可以运行未经授权的进程的阶段,

PowerShell.exe –ExecutionPolicy Bypass –File c:\temp\bad-script.ps1
您已经丢失了您的机器。如果用户运行它,那么遵循允许该用户运行恶意 ActiveX 代码的相同原则,他们将被允许运行恶意 PowerShell 脚本。
PowerShell 只会警告您即将做一些愚蠢的事情。它无法阻止一个坚定的白痴。
这主要是从 PowerShell’s Security Guiding Principles 重写(被盗) .
用你的类比来概括一下:一旦窃贼越过了你的电围栏、武装 guard 和野蛮的狗,你不妨让他们按下按钮来关闭警报。这样他们就不用把它从墙上撕下来吃掉了。

关于powershell - 为什么 PowerShell 有执行策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35139763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com