Quantcast
Channel: The Official Scripting Guys Forum! forum
Viewing all articles
Browse latest Browse all 15028

Powershell XML file modification

$
0
0

Hi,

Could someone assist me with a Powershell / XML type question please, i am trying to write out element values in a nmde but its being writen at the wrong level, i cant seem to get it working.

Thanks

Source XML file

<?xml version="1.0" encoding="utf-8"?>
<manifest>
  <meta>
    <manifestVersion>1.1</manifestVersion>
    <createdDateTime>23.01.2014 14:16:53</createdDateTime>
    <createdBy>EnterpriseTransporter, Version=5.0.3.7, Culture=neutral, PublicKeyToken=null</createdBy>
    <modifiedDateTime>24.01.2014 16:15:41</modifiedDateTime>
    <lastRunDateTime>24.01.2014 16:15:38</lastRunDateTime>
    <lastRunDuration>2.74</lastRunDuration>
    <lastRunMode>preview</lastRunMode>
  </meta>
  <options bulk="false" turbo="false" ignoreWarnings="true" triggerSlowsync="false" migrateWlan="false" />
  <datasources>
    <sourceDomain label="Source">
      <defaults serverName="" />
    </sourceDomain>
    <destinationDomain label="Target">
      <defaults serverName="" groupName="something" ITPolicyName="something2" SwConfigName="" />
    </destinationDomain>
  </datasources>
  <users>
    <user email="" destServer="" groupName="" ITPolicyName="" SwConfigName="" />
 </users>
</manifest>


Script

$path = "C:\Script\bet\manifestsource.xml"
$csvPath = "C:\Script\bet\import.csv"
$doc = [xml](Get-Content -Path $path)

foreach($e in (Import-Csv -Path $csvPath))
{

 $element = $doc.Manifest.users.user.clone()
 $element.email = $e.useremail
 $element.destServer = $e.destServer
 $element.groupName = "Something"
 $element.ITPolicyName = "Something2"
 $element.SwConfigName = ""
 $doc.DocumentElement.AppendChild($element)

}
$doc.Save("C:\Script\bet\manifest.xml")

This is what i get

<?xml version="1.0" encoding="utf-8"?>
<manifest>
  <meta>
    <manifestVersion>1.1</manifestVersion>
    <createdDateTime>23.01.2013 14:16:53</createdDateTime>
    <createdBy>EnterpriseTransporter, Version=5.0.3.7, Culture=neutral, PublicKeyToken=null</createdBy>
    <modifiedDateTime>24.03.2013 16:15:41</modifiedDateTime>
    <lastRunDateTime>24.03.2013 16:15:38</lastRunDateTime>
    <lastRunDuration>2.74</lastRunDuration>
    <lastRunMode>preview</lastRunMode>
  </meta>
  <options bulk="false" turbo="false" ignoreWarnings="true" triggerSlowsync="false" migrateWlan="false" />
  <datasources>
    <sourceDomain label="Source">
      <defaults serverName="" />
    </sourceDomain>
    <destinationDomain label="Target">
      <defaults serverName="" groupName="HSFProd-Baseline" ITPolicyName="HSFGlobal" SwConfigName="" />
    </destinationDomain>
  </datasources>
  <users>
    <user email="" destServer="" groupName="" ITPolicyName="" SwConfigName="" />
  </users>
  <user email="someone1@somewhere.com" destServer="server1" groupName="something" ITPolicyName="something2" SwConfigName="" />
  <user email="someone2@somewhere.com" destServer="server2" groupName="something" ITPolicyName="something2" SwConfigName="" />
  <user email="someone3@somewhere.com" destServer="server1" groupName="something" ITPolicyName="something2" SwConfigName="" />
</manifest>

This is what i need

<?xml version="1.0" encoding="utf-8"?>
<manifest>
  <meta>
    <manifestVersion>1.1</manifestVersion>
    <createdDateTime>23.01.2013 14:16:53</createdDateTime>
    <createdBy>EnterpriseTransporter, Version=5.0.3.7, Culture=neutral, PublicKeyToken=null</createdBy>
    <modifiedDateTime>24.03.2013 16:15:41</modifiedDateTime>
    <lastRunDateTime>24.03.2013 16:15:38</lastRunDateTime>
    <lastRunDuration>2.74</lastRunDuration>
    <lastRunMode>preview</lastRunMode>
  </meta>
  <options bulk="false" turbo="false" ignoreWarnings="true" triggerSlowsync="false" migrateWlan="false" />
  <datasources>
    <sourceDomain label="Source">
      <defaults serverName="" />
    </sourceDomain>
    <destinationDomain label="Target">
      <defaults serverName="" groupName="HSFProd-Baseline" ITPolicyName="HSFGlobal" SwConfigName="" />
    </destinationDomain>
  </datasources>
  <users>
    <user email="someone1@somewhere.com" destServer="server1" groupName="something" ITPolicyName="something2" SwConfigName="" />
    <user email="someone2@somewhere.com" destServer="server2" groupName="something" ITPolicyName="something2" SwConfigName="" />
    <user email="someone3@somewhere.com" destServer="server1" groupName="something" ITPolicyName="something2" SwConfigName="" />
  </users>
</manifest>


Viewing all articles
Browse latest Browse all 15028

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>