绕过安全限制,通过cmd执行PowerShell脚本(2)

之前的做法是将 PowerShell 脚本的代码拼接成一个大字符串,然后通过在 cmd 中运行 powershell 去直接运行。现在觉得,这种做法多少有些脱裤子放屁。脚本无法运行,是被系统的安全策略阻止了,其实可以直接在 cmd 中设置脚本运行策略。改进后的脚本如下:

首先是 run.bat

@echo off

FOR /F "tokens=* USEBACKQ" %%F IN (`powershell Get-ExecutionPolicy`) DO (
    SET policy=%%F
)

powershell Set-ExecutionPolicy Bypass

set /p script=Enter PowerShell script to run: 

powershell %~dp0\%script%

powershell Set-ExecutionPolicy %policy%

pause
echo on

我们并不想为了运行某个脚本而永久性地改变安全策略,只需要临时更改,运行后再改回去。

接下来,把需要运行的任意 ps1 脚本放在和上面的 run.bat 相同的目录下,run.bat运行起来后,直接在终端中输入要运行的脚本文件名就可以调用了。

posted @ 2024-01-13 15:31  fmcdr  阅读(81)  评论(0编辑  收藏  举报