将几个相同类型的对象添加到XML文件中

时间:2012-03-30 09:59:54

标签: xml powershell

有没有办法获取返回相同类型对象的多个实例的命令以存储在每个变量中?

这可能是最好的解决方案。我正在做的是从计算机收集信息,然后将其保存到xml文件中。

拿这个:

gwmi -cn $compname Win32_UserAccount -filter 'LocalAccount=true' | foreach{$_.Name}

我希望在运行此命令后将所有结果放在xml文件中,如下所示:

$template = @"
<computer version='1.0'>
  <users>
    <user>"HERE"</user>
    <user></user>
  </users
</computer>
"@

棘手的是,对象的数量会因计算机而异,但我希望此脚本为找到的每个对象制作另一个"<user></user>",然后将其放在那里。

所有帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

没有内置方法可以做到这一点,你必须自己生成XML。也就是说,PowerShell中有两个cmdlet,用于创建对象的基于XML的表示形式:Export-CliXmlConvertTo-Xml。请查看帮助以获取更多信息。

答案 1 :(得分:1)

您可以在here字符串中执行代码,这可以派上用场:

PS> $template = @" 
<computer version='1.0'> 
  <users>$(gwmi -cn localhost Win32_UserAccount -filter 'LocalAccount=true' | foreach {"`n    <user>$($_.Name)</user>"})
  </users>
</computer> 
"@ 

PS> $template

<computer version='1.0'> 
  <users>
    <user>Administrator</user> 
    <user>Guest</user> 
    <user>R1039564</user>
    <user>sysuser</user>
  </users>
</computer>