With this Powershell script you can create an XML import file for Terminals. You need to add your own code to create a favorite object and add it to the favorites array object. ```powershell ####################################### # # Powershell script to create an import file for Terminals # https://terminals.codeplex.com/ # # Script created by: Niels van de Coevering # Date: 05/31/2014 # ####################################### # Set path to save the terminals XML file $xmlSavePath = "C:\TEMP\terminals.xml"; # Create array for favorites $favCollection = @(); ############## # Add your own code here to add your own favorites to the array collection ############## # Examples: # Note: The named credential should be available in the credential manager in Terminals $favCollection += New-Favorite -name "Server1" -serverName "server1.domain.local" -tags "group1,group2" -notes "my notes" -credential "Domain admin" $favCollection += New-Favorite -name "Server2" -serverName "server2.domain.local" -tags "group1" -notes "my notes" -credential "Domain admin" $favCollection += New-Favorite -name "Server3" -serverName "server3.domain.local" -tags "group2" -notes "my notes" -credential "Domain admin" ############## # Call function to create Terminals XML document with generated favorite object array Create-XmlDocument -savePath $xmlSavePath -favorites $favCollection ######################################################################################################################### ### # Function to create and save Terminals XML document. ### function Create-XmlDocument ( [Parameter()](Parameter())[String](String)$savePath, [Parameter()](Parameter())[Object](Object)$favorites ) { # Create a new XML file [System.XML.XMLDocument](System.XML.XMLDocument)$xmlDoc=New-Object System.XML.XMLDocument; $xmlDoc.CreateXmlDeclaration("1.0","UTF-8",$null); # Add root node [System.XML.XMLElement](System.XML.XMLElement)$xmlRoot=$xmlDoc.CreateElement("favorites"); # Append as child to document $xmlDoc.appendChild($xmlRoot); # Loop for each favorite in the array foreach($fav in $favorites) { # Create new favorite element and add the child property elements [System.XML.XMLElement](System.XML.XMLElement)$xmlFav=$xmlDoc.CreateElement("favorite"); $xmlFav.appendChild($xmlDoc.CreateElement("protocol")).AppendChild($xmlDoc.CreateTextNode($fav.Protocol)); $xmlFav.appendChild($xmlDoc.CreateElement("port")).AppendChild($xmlDoc.CreateTextNode($fav.Port)); $xmlFav.appendChild($xmlDoc.CreateElement("name")).AppendChild($xmlDoc.CreateTextNode($fav.Name)); $xmlFav.appendChild($xmlDoc.CreateElement("serverName")).AppendChild($xmlDoc.CreateTextNode($fav.ServerName)); $xmlFav.appendChild($xmlDoc.CreateElement("tags")).AppendChild($xmlDoc.CreateTextNode($fav.Tags)); $xmlFav.appendChild($xmlDoc.CreateElement("notes")).AppendChild($xmlDoc.CreateTextNode($fav.Notes)); $xmlFav.appendChild($xmlDoc.CreateElement("credential")).AppendChild($xmlDoc.CreateTextNode($fav.Credential)); $xmlFav.appendChild($xmlDoc.CreateElement("bitmapPeristence")).AppendChild($xmlDoc.CreateTextNode($fav.BitmapPeristence)); $xmlFav.appendChild($xmlDoc.CreateElement("url")).AppendChild($xmlDoc.CreateTextNode($fav.Url)); # Appand favorite element to the root element $xmlRoot.appendChild($xmlFav); } # Save File [System.IO.TextWriter](System.IO.TextWriter)$sw = New-Object System.IO.StreamWriter($savePath, [Boolean](Boolean)::true, [System.Text.EnCoding](System.Text.EnCoding)::UTF8); $xmlDoc.Save($sw); $sw.Flush(); $sw.Close(); $sw.Dispose(); } ### # Function to create a new favorite object. ### function New-Favorite ( [Parameter()](Parameter())[String](String)$name, # Connection name [Parameter()](Parameter())[String](String)$serverName, # Computer name (FQDN) to connect to [Parameter()](Parameter())[String](String)$tags, # Name of groups favorite belongs to, seperated by a comma [Parameter()](Parameter())[String](String)$notes, # Extra note for favorite [Parameter()](Parameter())[String](String)$credential # Name of saved managed credential ) { $fav = New-Object PSObject; $fav | Add-Member -MemberType NoteProperty -Name Name -Value $name; $fav | Add-Member -MemberType NoteProperty -Name ServerName -Value $serverName; $fav | Add-Member -MemberType NoteProperty -Name Protocol -Value "RDP"; $fav | Add-Member -MemberType NoteProperty -Name Port -Value "3389"; $fav | Add-Member -MemberType NoteProperty -Name Tags -Value $tags; $fav | Add-Member -MemberType NoteProperty -Name Notes -Value $notes; $fav | Add-Member -MemberType NoteProperty -Name Credential -Value $credential; $fav | Add-Member -MemberType NoteProperty -Name BitmapPeristence -Value "RDP"; $fav | Add-Member -MemberType ScriptProperty -Name Url -Value {"rdp://$($this.ServerName):3389/"}; return $fav; } ```