微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows Powershell 策略执行绕过

如何解决Windows Powershell 策略执行绕过

我一直在创建一个 powershell 脚本来帮助我在不同用户的 PC 上自动执行任务,但我遇到了一个问题,我必须手动允许脚本在每台 PC 上运行,然后才能执行。

我尝试使用我发现的各种解决方案,但到目前为止似乎都没有。

我作为批处理文件尝试过的解决方案(理想情况下,我希望批处理文件下载脚本(已经排序)然后打开 powershell 脚本并成功绕过它):

powershell.exe -executionpolicy bypass -windowstyle hidden -noninteractive -nologo -file "multitool.ps1"

powershell -command "& {Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force}"

    @echo off
reg add HKLM\system32\windows\microsoft\powershell\1\shellids\microsoft.powershell /v "Path" /d "c:\windows\system32\windowspowershell\v1.0\powershell.exe"
reg add HKLM\system32\windows\microsoft\powershell\1\shellids\microsoft.powershell /v "ExecutionPolicy" /d "unrestricted"

@echo off
regedit /s file.reg

其中 file.reg 包含以下内容

[hkey_local_machine\system32\windows\microsoft\powershell\1\shellids\microsoft.powershell] 
"Path"="c:\windows\system32\windowspowershell\v1.0\powershell.exe"
"ExecutionPolicy"="unrestricted"

运行 powershell 脚本时,所有这些都会导致以下结果:

screen shot

非常感谢所有帮助

解决方法

powershell.exe -executionpolicy bypass ...原则上用于临时策略覆盖的正确方法,但作为错误消息指向的概念性帮助主题,{ {3}},声明,如果执行策略是通过组策略(而不是通过 about_Execution_Policies)设置的,它们不能被覆盖 通过其他方式,包括在命令行上

来自 Set-ExecutionPolicy 部分(强调):

您可以使用 Turn on Script Execution 组策略设置来管理您企业中计算机的执行策略。 组策略设置在所有范围内覆盖在 PowerShell 中设置的执行策略。

另请参阅:Use Group Policy to Manage Execution Policy (Windows PowerShell) 和 About Group Policy Settings (PowerShell (Core) 7+),其中详细讨论了相关组策略设置

,

我为此找到的最接近的解决方案是以管理员身份在 powershell 中运行以下行,它将执行脚本并绕过限制:

powershell.exe -executionpolicy unrestricted C:\multitool.ps1

如果有人有更简洁的解决方案可以从 bat 文件运行脚本,我将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。