I assume you are using USMT. Add this to the top of the XML after the <migration> tag
<library prefix="MigSysHelper">MigSys.dll</library>
Then here is a rule that will capture the whole desktop folder
<component type="Documents" context="User">
<displayName>Desktop Backup and Restore</displayName>
<role role="Data">
<detects>
<!-- Only process if Desktop exists -->
<detect>
<condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_DESKTOP%")</condition>
</detect>
</detects>
<rules>
<!-- Anything already on destination at restore time does not get overwritten -->
<merge script="MigXmlHelper.DestinationPriority()">
<objectSet>
<pattern type="File">%CSIDL_DESKTOP%\* [*]</pattern>
</objectSet>
</merge>
<!-- Backup and restore entire folder contents (except exclusions) -->
<include>
<objectSet>
<pattern type="File">%CSIDL_DESKTOP%\* [*]</pattern>
</objectSet>
</include>
<!-- Excludes -->
<exclude>
<objectSet>
<pattern type="File">%CSIDL_DESKTOP%\* [desktop.ini]</pattern>
</objectSet>
</exclude>
</rules>
</role>
</component>