The reason to Customize Windows Start Menu is a must for any organization to deploy a standard workstation and remove any unwanted software from it. Sometimes Microsoft makes small changes under the hood and can hardly be tracked unless an issue comes up to flag those changes. The configuration of the Start Menu and Taskbar for Windows 10 has been since the beginning a great challenge for administrators and it doesn’t look that this will change anytime soon. Windows 11 which came out recently share the same mechanism as Windows 10 when it comes to the Start Menu thus, this post can be used for Windows 11.
Microsoft added the following note to the start menu layout modification documentation after the 1703 release
Note
In Windows 10, version 1703, Export-StartLayout will use DesktopApplicationLinkPath for the .url shortcut. You must change DesktopApplicationLinkPath to DesktopApplicationID and provide the URL.A simple note, with great implication!
Following our previous posts on Windows 10 Customization and how to modify the taskbar configuration, we will detail how to configure the start menu and taskbar with the latest indication from Microsoft.
Prerequisites
- Windows 10 1703 and above
- The following procedure works for Windows 11 as well
Configure Start Menu Windows 10
The first step to building a nice Start menu is to customize it manually :
- Setup a Windows start menu as we would like to have
- Remove all unwanted link
- Classify your folder
- Pin your important apps

- Once your start menu is ready :
- Start a PowerShell command window as an administrator
- Enter the following command line to export the Start Menu
- Export-StartLayout -path C:\temp\StartMenu.xml
- A StartMenu.xml file is generated in the specified directory
- Application links are using the DesktopApplicationLinkPath

- In Powershell, enter the following command :
- Get-StartApps

- This returns the list of all applications in the Start Menu
- Locate the application that uses the DesktopApplicationLinkPath and take note of the AppID

- Go back to the XML exported previously and replace the DesktopApplicationLinkPath by the DesktopApplicationID

Once this is completed it can be added to your SCCM task sequence like we explain in our previous posts.
Important Info
If you wish to manage the Taskbar like we explained in our previous post, note that the DesktopApplicationLinkPath must be used as the DesktopApplicationID will not work.More details about Customize Windows Start Menu are available on Docs.Microsoft.com
18 Comments on “Customize Windows Start Menu for SCCM Deployments”
Thanks, but the example with IE is a bit outdated.
Great would it be if you could show us how to modify the tiles with a specific picture.
I’m getting a 80070002 error with the package to set the startmenu layout. I’m using run command line as suggested
Powershell.exe Import-StartLayout -LayoutPath “StartLayout.xml” -MountPath C:\ and the startlayout.xml file is in the root of the package folder
We have been customizing the start menu in our Operating System Deployment. Everything works except pinning Documents. I have read other people having the same issue with folders such as downloads or devices and printers. Is there any way to do this? Office programs, Chrome, Control Panel, those all work. We would really like to pin Documents to the Start Menu. It seems odd that we are having so much trouble, and that there isn’t any clear documentation on how to do it. If it isn’t possible, we can do it manually or possibly through GPO, but it would be so much easier if we could just load it through SCCM.
I’ve noticed that the old DesktopApplicationLinkPath seems to still work for us in most cases (1703, 1709 and 1803). We did have to change the .XML file to use DesktopApplicationID to make website links work though.
One think I am concerned about (with either DesktopApplicationLinkPath or DesktopApplicationID) is what is going to happen for people already imaged when Office 2019 comes out? We are on O365, but the Start menu links have 2016 in the name and also the DesktopApplicationID has the version in them. For example, Word has a DesktopApplicationLinkPath of “”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Word 2016.lnk” and the DesktopApplicationID is “Microsoft.Office.WINWORD.EXE.15”.
I’m wondering when O365 updates happen after Office 2019 ships, will our Office start menu links no longer show up because the update changed the .lnk name (if using DesktopAppliationLinkPath) and and the id (if using DesktopApplicationID) for Office products.
The only way that I was able to get it to work in Windows 10 build 1709 and 1803 images with SCCM is as follows:-
– Setup my Start Menu and Task Bar layout and use the Export command in PowerShell to export the xml.
– The layout file that I created looks like this (https://imgur.com/qf9ZCav). It includes Start Menu and Task Bar layout that I desire.
– Create a package, containing the xml file as well as a batch file. The batch file looks like this (https://imgur.com/lg6NuZw). For it to work, I had to load default hive and delete a Start Screen cache. Otherwise, it would not work. Then, it copies the xml file to the Shell folder, first by deleting all the files in the folder.
– Include the package in my SCCM Task Sequence as shown (https://imgur.com/SWpkIFm).
– After imaging, my Start Menu and Task Bar layout looks like this (https://imgur.com/N98EsmY).
This works for images created using reference image. I use Copy Profile = True.
Last Spring when creating 1703 images, Copy Profile messed me up for creating Start Menu layouts. After turning off CopyProfile, the method Jonathan describes worked for me (so without your extra steps of loading the default hive and deleting the Start Screen cache). Having CopyProfile set to True also caused us another issue or 2 that I can’t remember now. I ended up reworking our stuff to not rely on CopyProfile anymore.
I recently ran across this article that says CopyProfile is now deprecated for Start Menu (https://blogs.technet.microsoft.com/yongrhee/2018/03/12/windows-10-using-copyprofile-for-the-start-menu-has-been-deprecated/). Jonathan’s method is not using CopyProfile, but for us, just having CopyProfile set to True kept us from being able to successfully use Jonathan’s method.
Did anyone figure out how to change the title icon? I have shortcut that point to Firefox with a path (badly written web app working only with Firefox so we force these with Firefox). Because of that, they all give me Firefox icon. If I put .url files it put whatever default browser I have.
Thank you!
I haven’t tried this in my TS yet, but am curious – do we need to change the DesktopApplicationLinkPath as well as the AppUserMode1ID? the 2nd kind is for apps only I believe.
Pingback: Group Policy Objects – VDA User Settings – Carl Stalhood
Pingback: Detailed Change Log – Carl Stalhood
BTW: if you get an import error, it is almost always the quotation marks not translating exactly through unicode in your language. Make sure they are always ” vertical and not angular “.
Absolutely right Nick!
Try to open the XML in a browser before trying to apply it 🙂
Jonathan
@Erich. Export your start layout as explained, then copy the result over the top of the Layoutsmodification.xml template for the default user.
As long as all the apps referenced in the start layout are installed for all usersALL new users will get the same start menu and taskbar and they will be able to pin/add their own apps/pins. If you cant manage this in task sequence (or fat/captured wim) the only way to do it is via group policy which applies to the user at login and overwrites whatever they had customised themself (despite if you try ‘partial layout’ instead of full). So do it properly and do it in task sequence or build/capture.
Microsoft have so VERY fcuked this whole part of Win10: Appx/StartMenu/TaskBar/provisioning it has almost reached table flip level of bork. But without their turd of an idea i would be without a job. (maybe thats the idea?).
Thanks for the informative posts. I would like to see one more bit of information on all of these Win10 Customizations… does pushing these out in a task sequence make these settings (start menu, taskbar, lock screen, etc.) locked or defaults?
Say a new user logs in, they get the custom start menu set up this way. Is that locked and they cannot make changes, or is it a default, “suggestion” that they can change (within their own profile) as they please? As I read the official MS documentation, either the entire Start menu is locked and the user can’t change anything or some groups are locked, and the user can only change other parts of the menu. I am looking for the ability to set a default, not locking anything.
Could you please clarify the results of your process with regards to locked vs. default?
I have this working, with no issues.
The only problem that i have is pinning software center to the start menu. And the worst part that its not consistent. Sometimes its there and sometimes i have a blank tile.
Has anyone seen it?
Hi Jonathan
Thanks for the guide!
But i’m getting this error
PS C:\WINDOWS\system32> Export-StartLayout -Path c:\temp\startmenu.xml
Export-StartLayout : Element not found.
Thrown exception in StartTileData.dll
At line:1 char:1
+ Export-StartLayout -Path c:\temp\startmenu.xml
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Export-StartLayout], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.Windows.StartLayout.Commands.Expor
tStartLayoutCommand
Hi Daniel,
I found this on Reddit. https://www.reddit.com/r/sysadmin/comments/64mfw7/exportstartlayout_doesnt_appear_to_work_in/?st=jgrx2suk&sh=175d75a2
Are you up to date for CU on your Win10?
Is the start menu populated with at least 1 tile?
thanks
Jonathan
Thanks, but still no luck
i use Win10 Pro 1709
yes i have more than one tile.