PowerShell ExecutionPolicy 更改绕过

nex*_*xyr 1 powershell batch-file

我创建了一个 powershell 脚本并安排它每个月运行,但是当我尝试手动运行脚本时,它总是提示策略更改:

在此处输入图片说明

当我按回车键大约 1 小时后它仍然有提示出现

我已经将 ExecutionPolicy 设置为 Unrestricted 但我听说 Unrestricted 仍然有来自 untrsted 脚本的提示,我该如何绕过提示

或者无论如何要通过批处理文件运行 .ps1 并绕过 executionpolicy ?

谢谢

小智 6

只有三种方法可以做到这一点:

  1. 在选择的机器上手动进行。
  2. 使用组策略在所有机器或选定机器上启用它
  3. 使用 .bat 文件从中执行脚本。

选项1:

Set-ExecutionPolicy $POLICY -Force
Run Code Online (Sandbox Code Playgroud)

Restricted- 不能运行任何脚本。Windows PowerShell 只能在交互模式下使用。

AllSigned - 只能运行由受信任发布者签名的脚本。

RemoteSigned - 下载的脚本必须由受信任的发布者签名才能运行。

Unrestricted- 没有限制; 可以运行所有 Windows PowerShell 脚本。

选项 2:

  1. 在计算机配置下导航到策略\管理模板\Windows 组件\Windows PowerShell。您应该会看到一个名为打开脚本执行的设置
  2. 双击设置。您需要启用它并从下拉列表中选择一个选项。
  3. 选择您选择的政策。AllSigned、RemoteSigned 和 Unrestricted
  4. GPO 是安全的,但它也可能很快变得不安全。确保在将新 GPO 投入生产之前对其进行测试。

选项 3:

在 .bat 文件中运行以下内容

powershell.exe -executionpolicy bypass -windowstyle hidden -noninteractive -nologo -file "name_of_script.ps1"
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助您找到您正在寻找的答案。