我尝试创建一个Python程序,该程序将对使用IEX的Powershell恶意软件进行模糊处理。我的python程序实际上是在钩住IEX函数,而不是运行所需的字符串,它将打印该字符串。 现在我的问题是我有一些.ps1脚本(例如1.ps1、2.ps1等),我想在同一个会话下运行所有这些脚本,这样,由1创建的所有局部变量.ps1脚本,那么2.ps1脚本将可以使用...
现在我尝试了很多方法,首先我尝试了子进程,但是每次输入命令(.ps1文件的路径)时,它总是创建一个新会话。然后我在GitHub上找到了这个项目: https://gist.github.com/MarkBaggett/a7c10195b2626c78009bf73bcdb6db20 这确实很棒,并且确实可以运行,但是仍然可以看到,当我运行命令./1.ps1时,它仍未在会话中存储局部变量(也许在运行脚本时会打开一个新变量)。 我也尝试做“ Get-Content 1.ps1 | iex”,但是由于我那里有函数,所以它崩溃了:
function Invoke-Expression()
{
param(
[Parameter( `
Mandatory=$True, `
Valuefrompipeline = $True)]
[String]$Command
)
Write-Host $Command
}
摘自PSDecode项目: https://github.com/R3MRUM/PSDecode/blob/master/PSDecode.psm1#L28
无论如何,关于我该如何做的任何想法?我的桌面上有这些脚本,但不知道如何在同一会话中运行它们,因此它们将使用相同的局部变量...
尽管我做了两件事,但它们确实很烂: 1.将所有脚本转换为1个脚本并运行它,但是在下一次运行中,我将使用该程序,我可能有100个或更多脚本,但我并不是真的想要这样做。 2.我可以保存每个脚本中的局部变量,然后将其加载到另一个脚本中,但我想在最坏的情况下使用它,但仍然没有到达那里。
非常感谢您对我的帮助,对不起我的语法,我的英语不是我的母语:)
答案 0 :(得分:0)
也许您正在寻找dot sourcing:
在当前作用域中运行脚本,以便将脚本创建的所有函数,别名和变量添加到当前作用域中。 PowerShell
。 c:\ scripts \ sample.ps1
如果这样,请点源ps1文件,然后调用其中的函数。
希望有帮助。