Добавление нескольких объектов одного типа в XML-файл - PullRequest
0 голосов
/ 30 марта 2012

Есть ли способ получить команды, которые возвращают несколько экземпляров объекта одного типа, для сохранения в каждой их переменной?

Возможно, это не лучшее решение. То, что я обманываю, собирает информацию с компьютера и затем сохраняет ее в файл 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 ]

1 голос
/ 31 марта 2012

Вы можете выполнить код внутри строки здесь, которая может пригодиться:

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> 
1 голос
/ 30 марта 2012

Нет встроенного способа сделать это, вам придется генерировать XML самостоятельно.Тем не менее, в PowerShell есть два командлета, которые создают представление объекта на основе XML: Export-CliXml и ConvertTo-Xml.Проверьте справку для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...