TS

Force a Customized Start Menu and Taskbar for all Windows 10 users

In Windows 10 there is a nice little feature which allows you to force all users to use a customized layout. Due to the ugliness of the Windows 10 Start Menu we were forced to customize it and then push it out to all users on our network using Windows 10 Enterprise. Not only where we able to fully customize the Start Menu but we were also able to customize the Taskbar within the same configuration file.

We opted to use a minimal look for the Start Menu and kept it to a simple vertical Menu without the section where the Tiles once were. We also chose to use Internet Explorer in the Taskbar instead of Edge and kept the File Explorer.

Thankfully Microsoft have provided full documentation of how to go by creating a customized Start Menu and Taskbar and I will leave the links to those pages at the bottom of this tutorial. So lets get started.

There are 3 steps to creating the custom layout:

  1. Create the .xml configuration file
  2. Specify a location for the .xml configuration file
  3. Enable the Group Policy Setting for customized Start Menus

Creating our configuration file

Lets start by creating our customized Start Menu and Taskbar. Microsoft has provided a handy Powershell cmdlet which exports the current Start Menu configuration that you have chosen and will export it as a .xml configuration file. So when you have chosen the layout that you want to run and modify this cmdlet in an elevated powershell:

Before you modify the script:

Export-StartLayout –path <path><file name>.xml

After you modify the script:

Export-StartLayout –path C:\Windows\Menu\layout.xml

So now we have our Start Menu and Taskbar layout saved into a nice handy .xml configuration file which can be placed somewhere safe. The best thing about this file is that it can be modified easily.

The configuration file I created for a minimal look will look something like this. It is split up into three sections 1. The Version, Encoding and Schema 2. The Start Layout 3. The Taskbar Layout.

<?xml version="1.0" encoding="utf-8"?>
<LayoutModificationTemplate
xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout"
Version="1">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" />
</StartLayoutCollection>
</DefaultLayoutOverride>
<CustomTaskbarLayoutCollection PinListPlacement="Replace">
<defaultlayout:TaskbarLayout>
<taskbar:TaskbarPinList>
<taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk" />
<taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />        
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>

In the above layout the Start Menu is empty but I had to give it a cell width otherwise it did not work. You can see that the Taskbar has 2 entries Internet Explorer and File Explorer, this can obviously be amended to suit your needs.

The Start Menu

<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" />
</StartLayoutCollection>
</DefaultLayoutOverride>

The Taskbar

<CustomTaskbarLayoutCollection PinListPlacement="Replace">
<defaultlayout:TaskbarLayout>
<taskbar:TaskbarPinList>
<taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk" />
<taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />        
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>

Now that the tricky bit is over we can get down to putting the .xml configuration file into action using (for the sake of this tutorial) Local Group Policy.

For more information refer to the Microsoft Guide

Choosing a location for our configuration file

So now that we have our .xml configuration file ready we now need to choose a secure location for it where it can not easily be found or edited. For the sake of this tutorial I have chosen C:\Windows\ and here we will create a new folder called Menu (C:\Windows\Menu\)

Next we will use Local Group Policy to enforce this new layout for all users who log onto the device. Open Cortana and type the following gpedit.msc to open the Group Policy editor. Alternatively you can navigate to C:\Windows\System32\ and search for gpedit.msc and run it from there.

Group Policy Editor in Cortana
With the Group Policy Editor open navigate to the following Local Computer Policy / User Configuration / Administrative Templates / Start Menu and Taskbar

Group Policy Menu Layout

From Start Menu and Taskbar select Start Layout on the right hand pane and double click to open modify the policy settings
Group Policy Menu Layout

With the Start Layout open click Enable and input the path to the .xml configuration file and press Apply and OK. Before any changes will take effect you will need to Log off or Restart the device.
Customized Start Menu Windows 10
After a Log off or Reboot you should have a nice customized Start Menu and Taskbar.

For a more in depth look at customizing the Start Menu and Taskbar you can refer to the documentation on Microsoft here.

2 Comments

  1. Great article, it’s a great way to get the Windows 10 GUI looking uniform across a big deployment.

Leave a Reply