繁体   English   中英

绕过与不受限制的执行策略

[英]Bypass vs Unrestricted execution policies

有关该主题的文档仅提供以下内容:

不受限制。 加载所有配置文件并运行所有脚本。 如果您运行从 Internet 下载的未签名脚本,则会在运行前提示您获得许可。

旁路。 没有任何内容被阻止,也没有警告或提示。

对我来说,似乎两人会接受任何剧本,但令我惊讶的是事实并非如此。 在某些情况下,绕过似乎会阻止执行。

那么,两者有什么区别呢?

根据评论,这些执行策略的行为方式应该没有特别的区别。 但是,当您在单次运行Powershell.exe期间临时更改执行策略时使用Bypass ,如果您希望永久更改系统范围之一的执行策略设置,则使用Unrestricted (MachinePolicy、UserPolicy、Process、CurrentUser、LocalMachine)。

一些例子:

  1. 您在一个系统上,您希望将执行策略更改为永久不受限制,以便任何用户都可以毫无问题地运行任何 PowerShell 脚本。 你会运行:

     Set-ExecutionPolicy Unrestricted
  2. 您在一个执行策略阻止您的脚本的系统上,但您想通过 PowerShell 运行它并在运行时忽略执行策略。 你会运行:

     powershell.exe .\\yourscript.ps1 -executionpolicy bypass
  3. 您在执行策略阻止脚本执行的系统上运行 Powershell.exe,但您只想在您所在的交互式 powershell.exe 会话的生命周期内更改此策略。您将运行:

     Set-ExecutionPolicy Bypass -Scope Process

不同之处在于您在问题中给出的描述。 Unrestricted 让你沉迷于所有计算机都运行 Windows,只使用 NTFS,并且只使用保存 ADS 的浏览器下载东西的错觉。 事实上,如果您将 Windows 中的文件保存到服务器上未使用 NTFS 的 FAT 文件系统或网络共享,或者以其他方式下载它,例如使用 git,powershell 认为它是本地创建的,无论它来自哪里。 Bypass 不会检查其中的任何一项,只会运行所有内容。 Unrestricted 应该警告您它认为可能危险但无法可靠检查或确定的事情。 使用您喜欢的任何一种。

PS> rm -path file.ps1 -stream zone.identifier
讨论...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM