Backtrack:  
 
by lunarg on June 29th 2015, at 13:00

Microsoft's recommendations for customizing the default start screen for new users are known to be somewhat over-complicated and perhaps difficult to implement. They involve editing the reference image, using unattend.xml, or some other elaborate procedure. There's also the posibility of using a group policy to provide users with a customized start screen, but while this is relatively easy to implement, it does not allow the user to change the layout afterwards.

Fortunately, there's a far easier method, involving two Powershell cmdlets that provide us with a very easy way to provide new users with a default customized start screen, but still allow the users to make changes to it. This method is usable on a reference image for deployment, an unattended deployment using RTM media, or an existing Windows installation, whether it's a standalone Windows 8.1 client or a 2012 R2 RDS server. If you're customizing a virtual golden master image (for VDI), treat the system as a standalone, and run the commands on that system.

Note that this only works with Windows 8.1 or 2012 R2. Windows 8 and regular 2012 do not support this.

  1. Deploy the reference image to a system or start up an existing machine that will be used as the reference, and log on to the system. You can also log on to a standalone system if you wish to make the modifications on that system itself. All applications that need to be pinned to the start screen need to be present in order to be able to properly customize the start screen.
  2. Customize the start screen to your liking. The way the start screen looks in the current user that's logged on will be used as a default start screen for every new user.
  3. Export the start screen using Powershell:
    Export-StartLayout -As BIN -Path MyStartScreenLayout.bin
    This will export the current start screen layout to a file, called MyStartScreenLayout.bin. Note that you have to export to binary (BIN) format as the Import-StartLayout only imports binary files (not XML).
  4. Use Import-StartLayout to import the file created in the previous step. If you aren't already on the system running the reference image, you should run the following command on that system. Although official documentation states that this cmdlet can only be used on offline images (i.e. that are mounted with ImageX), it also works on a live system. You need to run the cmdlet in an elevated prompt.
    Import-StartLayout -LayoutPath MyStartScreen.bin -MountPath C:\
    The cmdlet will import the layout stored in the file MyStartScreen.bin into the default profile of the system available/installed at C:\. You can also point to a remote location or an offline image that has been mounted.
    Also note that the import will be done on the default profile. This means that users that already have a profile (local on the standalone system, or a roaming profile on the network) will not receive the new custom start screen layout. New users will receive the customized layout as they will get their profile copied from the default profile.
  5. To test on the reference system, log on with a user that hasn't got a profile on that system. If you're using roaming profiles, you will probably have to create a new test user, as the new custom start screen layout will only be available for new users (i.e. which do not yet have a profile, local on the system or roaming on the network).

It is also possible to run the import cmdlet as part of a deployment with SCCM or another management system. Let the following cmdlet run as part of the deployment (requires elevation):

POWERSHELL -NonInteractive -Command Import-StartLayout -LayoutPath \\host\path\MyStartScreen.bin -MountPath C:\