我正在做一个项目,我想对各种项目执行主机文档。这些项目的一部分将来自 Powershell,其余部分将来自 NMAP。对于 Powershell 部分,我正在尝试构建一些自主开发的东西,类似于SYDI 服务器项目。它将使用 Powershell 而不是 WMI,并允许使用更大、更简单的方法来从远程机器获取各种结果。此外,SYDI-Server 项目已经有一段时间没有更新了。NMAP 部分将用于在远程主机上执行一两次扫描并返回结果,以便 Powershell 可以使用或消费这些结果并将它们添加到正在生成的最终报告中。这个想法类似于将报告作为从 Powershell 输出的 MS Word 文档,其中包含主机文档所需的所有元素。
综上所述,有没有办法让数据在 Powershell 和 NMAP 之间共享或来回发送?有没有办法让 NMAP 的结果在 Powershell 中使用或解析以进行进一步操作?
答案1
NMAP 结果可以相当轻松地读入 powershell。NMap 有一个选项可以以 XML 格式输出结果。这由选项控制-oX
。PowerShell 喜欢 XML。
nmap [options] -oX results.xml [targets]
阅读起来很容易:
[xml]$NmapResults = Get-Content results.xml
这将在 $NmapResults 中创建一个数据结构,您可以在其中移动该数据结构以获取所需的内容。
对于如何访问单个 XML 元素,我在不同的 ServerFault 答案中进行了介绍: