Create a Company Standard Start Menu Using PowerShell

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:

C:\Users\%username%\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml

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:

C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\Layoutmodification.xml

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.

Download: Import StartMenu Layout PowerShell script

Advertisements

2 thoughts on “Create a Company Standard Start Menu Using PowerShell

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s