Customising the Start Menu and Taskbar with Windows 10 all versions incl. 1903/1909

This week I’ve gone pretty deep down the rabbit hole of automating the Start Menu and Taskbar layouts during an MDT Task Sequence.

Update 2017-05-02: This also works with Windows 10 1703 (Creators Update)

As every device I’m deploying will have the same customisation I wanted to automate it during the build or deploy Task Sequence, rather than applying it via domain Group Policy to reduce limited network bandwidth, keep Group Policy as light as possible and reduce login times as much as possible.

Update to this post: How to partially lock down the Start Menu.

A new (and extremely welcome) feature of Windows 10 1607 is the ability to customise the Taskbar layout, there’s a very good post over on TechNet about it here.

With this post in mind, I used one of my reference images and customised the Start Menu layout and exported it via everyone’s favourite PowerShell command:

Export-StartLayout C:\StartLayout.xml

As the TechNet post says, you can add the extra xml data necessary to configure the Taskbar layout, although in the end I did just write my own xml file from scratch.


When deploying the customisation you may have missing icons, for example the Internet Explorer icon may be missing. This is most likely due to the location of the Internet Explorer.lnk file being a part of the users profile – customisation is applied before the file exists, so it’s removed. To work around this I recommend copying the Internet Explorer.lnk file to the %alluserprofile% Start Menu as part of your deployment and (as above) editing the StartLayout.xml file to reference the new location of the file. I recommend doing this for any .lnk files that aren’t in a public/all users location.

If you intend on deploying this Start Menu/Taskbar layout customisation during the image build process via the Import-StartMenu PowerShell commandlet, then you may, as I did, encounter a problem. One of the final things my image build task sequence does is apply customisation to the Administrator users profile, which is then copied for use as the Default profile during the deploy Task Sequence, using the CopyProfile unattend.xml option. The problem is that by using the Import-StartLayout command, this only sets the layout for the Start Menu and Taskbar for new profiles created from that point on wards. The CopyProfile option does not set the Start Menu/Taskbar layout, as it’s not a part of the Administrators profile.

So what do we do? Well, you can just set it via GPO and call it a day, but I absolutely wanted it to be a part of the image, so I looked into setting it as a local group policy option during the image build task sequence. This also failed to take effect when deploying the image. I’m led to believe (as silly as this might sound) that the reason for this is that the StartMenuLayout.xml that the group policy was configured to use needs to be newer than the OS deployment, as in the date stamp needs to be after. So what I finally did was copy the StartMenuLayout.xml file and set the local group policy option late during the deployment Task Sequence, thus the .xml file is “newer” than the OS install and the local group policy option ensures that the setting it applied for every user than logs on, without hitting domain Group Policy.

I take great care to test my ideas and make sure my articles are accurate before posting, however mistakes do slip through sometimes. If you’d like to get in touch with me please use the comments, Twitter (you can tweet me and my DMs are open) or my contact form.

I hope this article helps you out, please consider supporting my work here. Thank you.


8 thoughts on “Customising the Start Menu and Taskbar with Windows 10 all versions incl. 1903/1909

Add yours

  1. Have you noticed that when people upgrade from 1607 to 1703, their personally-pinned start menu items disappear? This is with a partial start menu layout applied via GPO. Also, if they logon with 1703 while off the network, the start menu reverts to the default layout. If they logon again while on the network, the custom start menu is back, but once again their personally-pinned items are gone. Big bug.


    1. I hadn’t noticed this personally, thanks for the heads up. I think there’s still some work that needs to be done regarding customising the Start Menu layout for sure. Microsoft seem to be listening a lot more to feedback these days, mainly through the Feedback app, and with the Windows Insider Program for Business, I’d say this is a perfect example of something to bring up in these forums.


  2. Hi Mike,
    Thanks for this !
    But can you detail “So what I finally did was copy the StartMenuLayout.xml file and set the local group policy option late during the deployment Task Sequence” ?
    Please 🙂


    1. Hi Surfin,

      Sure thing – although I warn you that I think this is the hackiest hack ever, it just worked for me in this specific situation. This is the reason I haven’t been specific about it in the post, I don’t recommend it, but it’s your call. 🙂

      1) In my deploy task sequence I have a .bat script that copies (using XCOPY) the StartMenu.xml layout file I created to “%allusersprofile%\Microsoft\Windows\”
      2) The bat script then uses REG IMPORT to import the registry settings that are set when using the local group policy editor. I had to use the local group policy editor to set the path to the StartMenu.xml file for all users, as the path is stored in HEX in the .reg file. My .reg file looks like this.

      Windows Registry Editor Version 5.00


      3) What should happen from now on is that when *any* user logs on they should get the same start menu layout and they won’t be able to change it. Something you should look out for is the layout getting duplicated – this is caused by something to do with local user profiles – I don’t remember now. But clearing a user profile and letting it recreate from scratch “fixed” the problem.

      Hope this helps you Surfin.


      1. Mike,
        Thanks for this big post.
        You’re right, this is a nice hack 🙂
        I will try it just to see.
        Thanks again.
        Have a good day !


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at

Up ↑

%d bloggers like this: