Tuesday, June 4, 2013

Predefining and customizing the Modern UI Start Screen on RDS 2012 R2

In a previous blog post called Predefining and customizing the Modern UI Start Screen on RDS 2012 I explained a way to predefine the contents and layout of a Start Screen in Windows Server 2012 and publish that to your users by creating and distributing the file appsfolder.itemdata-ms (with the read attribute either disabled or enabled).

As a quick recap, the new modern UI Start Screen can no longer be controlled by commonly used techniques (despite their downsides) like folder redirection, only the All Apps section can be controller. The Start Screen contents and look and feel are stored in a binary file as part of the users (roaming) profile. The previous article showed a step-by-step guide how to create a pre-defines start screen, publish that to your end users and be allow them to modify that pre-defined Start Screen to their needs.

So what's new?

As you might have heard Windows Server 2012 R2 was announced June 3rd 2013 at Tech Ed 2013 NA. During one of the sessions a new way to customize, predefine and distribute a Start Screen to end users got introduced. So it’s time for an update!

Note that Windows Server 2012 R2 has not been released yet, I too am not able to personally test this new mechanism until preview release, which will be later this month, so the screenshots and steps below are taken from the sessions held at Tech Ed.

After you have modified the Start Screen the way you want it to look for your end users, you can use the following PowerShell command to Export the Start Screen


You can then store that .XML file in a central location use the following Group Policy Object called “Start Screen Layout” which is inside:

User Configuration \ Polcies \ Administrative Templates \ Start Menu and Taskbar


To define the centrally stored .XML file


In case you’re wondering, this is the description of the GPO setting.


So the process became much easier compared to before! As it now seems this method will be supported on Windows Server 2012, Windows 8.1 and Windows RT 8.1.

Source: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/Key01#fbid=YavD-8dO8_f


  1. That looks really, really, interesting!

    It's the most useful thing I've found so far on how to customise the desktop experience for Session Based Remote Desktop. I'll keep looking out for more articles and tips!


  2. So it sounds as if we still have to use the "old" binary file method to set a default but user customisable start screen?
    I have to say, heads should roll for this. Terrible loss of functionality for organisations when compared to the original "user plus computer" merged folder structure that sat behind the start menu.
    Why are there no PowerShell commands to pin and remove items to the start menu and desktop? We should have something like:
    add-startmenuitem -path "C:\Program Files\Microsoft Office\winword.exe" -group "Microsoft Office" -name "Microsoft Word" -scope currentuser
    If I force all my users to have the same start screen via group policy, what happens to icons delivered automatically for RemoteApp stuff, Citrix Receiver, SCCM & App-V?

    1. Obviously I've not been consistent with my use of Start Menu and Start Screen in that reply!

  3. Thanks for the update Freek!

    Someone got this running with UPD configured? I see in the current-user registry that the path has been set by the GPO but nothing happens...

  4. I've got a fresh installation of RDS 2012 R2 but I do not see the "Start Screen Layout" setting. I've tried modifying the GPO from both my Session Host server as well as the Connection Broker. Any help would be appreciated.

  5. Rod, what is the functional level of your domain? In our case, the domain is functional level 2003 and we also do not see that 'Start Screen Layout' option in User Configuration \ Policies \ Administrative Templates \ Start Menu and Taskbar

    I wonder if it will be possible for us to use, without updating the domain functional level?

  6. I suspect the PolicyDefinitions need to be updated (see http://www.xenappblog.com/2013/customize-windows-2012-start-screen-using-group-policy/). I'm going to test this out later today and will post back.

  7. This feature doesnt work for me with 2012 R2.

    Created the XML file
    First time logon XML gets loaded
    Second time logon XML gets ignored \local file overrules the XML.
    Im working with UPD enabled on registry and appdata only.

  8. I see it only works when you add in your UPD the this path:


    then your XML gets loaded and always applied

  9. Mr. Berson, hope you keep this topic updated. Info on managing the start screen (or as I refer to it: the interface formerly known as Metro, but not really), is scarce.

    We are not running an RDS environment, just a pure Server 2012 R2 / WIN8.1 PRO clients shop. I applied the steps from this post and the result was the no one received the customized start screen, however, everyone's start screen became locked. LOL! The worst of both worlds. Not sure if a lack of RDS accounts for this? In any case we are aiming for the 'best' of both worlds; i.e. a customized start screen that users can then further customize.

  10. Thank you for the useful information. I have additional requirements , to present / publish different screen layouts for different group of uses for only application they are authorized to access.It was way easier in 2008 r2. Thanks.

  11. Windows 2012R2 has a GPO key, but it's read-only (meaning the end user can't customize the Start menu or Taskbar if the setting is enabled). The GPO info above doesn't appear to work for R2, either. So... I ended up putting the c:\windows\system32\attrib.exe %USERPROFILE%\appdata\local\microsoft\windows\appsfolder.itemdata-ms -R command in a batch file w/ a shortcut on the default profile desktop (with the last line of the batch file deleting the shortcut).

    The user sees the batch file the first time they log in, they click it, the read-only attribute is removed & they can customize a pre-populated Start screen.

    Not as elegant as I'd like, but so far it's the only workaround I've been able to devise. Please let me know if you come up with anything better.