Arcane Dimensions

Configure Windows 11 Start menu using only Group Policy

If you maintain a fleet of corporate Windows PC's like myself, you may have had to configure the Windows 10 Start menu so it looks the same for everyone by default and has corporate apps pinned as tiles. This consisted of generating an .xml file from the Export-StartLayout PowerShell cmdlet, copying said .xml file across to each machine on the network via Group Policy, and telling Windows to point to that file for it's Start menu configuration (well that's how I did it at least).

Microsoft has decided that is no good for Windows 11. Now if you want to configure the Start menu, you're suggested to use Microsoft's very own Microsoft Endpoint Manager, which of course isn't free. Hmm.

Windows being Windows though, with every setting typically being stored as a registry entry, it is just a matter of working our where Microsoft Endpoint Manager stores its configuration to enable a customised Start menu. Low and behold, that mysterious location is:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\Start\ConfigureStartPins

Right then, so that's where the settings are stored. What do we need to put into the "ConfigureStartPins" string value?

Well, firstly set up a test account in a Windows 11 VM somewhere. Manually set up the Start menu how you need, pin and unpin apps as required.

Once you've got everything how you'd like, run the following PowerShell command as the logged in user:

Export-StartLayout -Path "C:\<wherever>\startLayout11.json"

Great. We have a .json file with all the apps we need. Now what do we do with that?

Well, nothing with the file itself, but the contents of this file are important.

In a new or existing Group Policy object applied to your Windows 11 PC, create a new registry entry under Computer Configuration -> Preferences -> Windows Settings -> Registry.

New -> Registry Item

Action = Update
Hive = HKLM
Keypath = SOFTWARE\Microsoft\PolicyManager\current\device\Start
Value name = ConfigureStartPins
Value type = REG_SZ
Value data = <the contents of your .json file>

And there you have it. Once this is deployed to your Windows 11 PC's, when a new user logs into the PC, they will have your custom configured Start menu.

Note that users will be able to further customise the menu to suit themselves i.e. it doesn't become "locked", but at least this gets the pre-loaded consumer crud Microsoft wants to push into everyone's faces out of the way.