【发布时间】:2014-01-03 11:13:38
【问题描述】:
我有一个脚本,它正在导出我们的用户软件并将注册表项运行到 xml 文件,以便我们跟踪可疑文件。我有数百个 xml 文件,其中包括:
<MDetection>
<SoftwareReg>
<Soft1>HKCU\SOFTWARE\Adobe</Soft1>
<Soft2>HKCU\SOFTWARE\Ask.com</Soft2>
<Soft3>HKCU\SOFTWARE\Citrix</Soft3>
<Soft4>HKCU\SOFTWARE\Google</Soft4>
...
</SoftwareReg>
<RunReg>
<Run1>SOFTWARE\Microsoft\Windows\Currentversion\Run\Sidebar-->C:\Program Files\Windows Sidebar\sidebar.exe /autoRun</Run1>
<Run2>SOFTWARE\Microsoft\Windows\Currentversion\Run\WindowsWelcomeCenter-->rundll32.exe oobefldr.dll,ShowWelcomeCenter</Run2>
...
</RunReg>
<Hostname>USERPC01</Hostname>
<Username>JonesA</Username>
<TimeGenerated>03/01/14 11:00</TimeGenerated>
</MDetection>
我希望能够在所有 XML 文件中搜索特定的 SoftwareReg 或 RunReg 键,并且还能够使用通配符搜索条目。例如搜索所有“Ask.com”键或以“cr”开头的条目。
我遇到的问题是我想知道相应的 reg 键所指的主机名和用户名。我无法提取这些。
我的 Xml Powershell 不是最强大的,因此我们将不胜感激!我目前正在使用:
$XmlData = Select-Xml -Path '\\Server\Share$\*.xml' -XPath '//MDetection' -ErrorAction 'silentlycontinue'
$XmlData | %{$a += $_.Node.SoftwareReg.ChildNodes.'#text'}
我正在使用 $a 临时存储所有 reg 条目,但我无法提取主机名或用户名。我怀疑有一种我目前正在使用的更简单的方法!
非常感谢,
【问题讨论】:
标签: xml search powershell