In Windows 10 the start menu can be personalized for each user. This means for each user there must be a file which specifies what is displayed in the start menu.
First, on a test PC, manipulate the Start Menu tiles until you have a good representation of what you want. Then, use the following PowerShell command to export the layout to an .xml file.
Let’s start with the basic information, the default Start Menu template is located here:
This file should not be modified. To modify the start menu we use file called LayoutModification.xml that should reside in the same directory. This file can be used in many ways for OEM’s to add icons to the Start Menu or for us IT-Pro to override the default Start Menu.
More information on how to use these files can be found here on MSDN: https://msdn.microsoft.com/en-us/library/windows/hardware/mt171092(v=vs.85).aspx
Exporting a customized Start Menu layout
To export the Start Menu I start by using a computer and a user and adjust the Start Menu on that computer so it looks the way we want it.
Then I use Powershell to export a customized start menu using the following command,
Export-Startlayout –path C:\Temp\Startmenu.xml
Then we have a .xml file with our current Start Menu Layout that looks like below that will override the default start menu defined in the DefaultLayouts.xml in Windows 10.
Import a Start Menu layout using Powershell
Now that I have an exported Start Menu we can import it using Powershell. All users that log on to the machine the first time will get this Start Menu layout that you import.
Import-StartLayout –LayoutPath C:\Temp\Startmenu.xml -MountPath $env:SystemDrive\
After the command is successfully completed the Layoutmodification.xml file is created here:
Applying the Start Menu during OS deployment
To deploy this I have write a simple PowerShell script that imports the StartMenu.xml file and copies the Internet Explorer link we created before.
The Powershell Script content:
Import-StartLayout -LayoutPath $PSScriptRoot\StartMenu.xml -MountPath $env:SystemDrive\ Copy-Item -Path $PSScriptRoot'\Internet Explorer.lnk' -Destination $env:SystemDrive'\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories'
Then I place the PowerShell script in a folder together with the exported Start Menu.
Then I create a package of that folder in Configuration Manager with no program as we use the PowerShell step in the Task Seqeunce to execute it and distribute it to the Distribution Points. And add a step in the task sequence to run the PowerShell script as shown below.
Then you are ready to test the deployment of your customized start menu.