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>