Friday, 22 August 2014

Persisting the Windows 8.1 Start Screen

Any System Administrator / Architect who has looked at implementing Windows 8.x within their corporate estate would have seen how difficult it is to manage the Windows 8.x start screen. This article will identify the files needed to manage this and provide some AppSense Environment Manager templates that will enable this functionality within your AppSense Managed Environment.

Continue reading to find out how to configure this within AppSense Environment Manager
To start with, create a Windows Personalization Group that manages the following file locations in order for the start menu to persist correctly:

{CSIDL_LOCAL_APPDATA}\Microsoft\Windows\appsFolder.itemdata-ms
{CSIDL_LOCAL_APPDATA}\Microsoft\Windows\appsFolder.itemdata-ms.bak
{CSIDL_PROGRAMS}


The first two files mentioned above contain the actual tiles that are pinned to the new start screen so, when I pin Microsoft Outlook 2013 to my start screen those files are written to. The last folder contains any folders that are pinned to the start screen. If this folder is not managed any folders (e.g. Documents, Pictures, etc) that are pinned to the start screen will not persist.

The XML snippet below can be imported into an EM 8.5 Personalization Server and then added to your Personalization Group:


Simple right? Unfortunately it doesn't end there because Microsoft have a process that overwrites the file that is copied in through Personalization or Policy during the logon process so despite managing the files and folders above the user will sign in and have a default start screen on every subsequent logon. In order to work around this problem a simply Environment Manager Policy configuration can be used to set the files to read only during the normal logon process and then remove the read only attribute once logon completes.

Last but certainly not least you need to "tickle" the lnk files within the {CSIDL_PROGRAMS} folder to force them to refresh once the start screen has been copied down. This is best done using the following script which can be found in the Process Started trigger of the Environment Manager 8.5 configuration mentioned below:



The attached Environment Manager 8.5 Policy template contains the configuration required to achieve this:


The same can be configured using Environment Manager 8.3 and Environment Manager 8.4 however the limitations within Session Data mean that you need to use Environment Manager Policy to copy the files in and out and in my experience the Logon trigger runs slightly too late to perform the file copy actions. In order to get around this I use a custom condition within the Environment Trigger to perform the necessary file copy:

The configuration below contains the actions necessary to persist the Start Screen using Environment Manager 8.3 and 8.4.


Any questions, feel free to contact me on the AppSense Exchange Forum or on Twitter. Credit to Richard Bancroft (EMEA AppSense Professional Services) for fine tuning the configuration and his work on persisting pinned folders.