Windows 11

Why does Windows 11 make Start menu layout so hard?

In Windows 10, you had options: You could lock down the full Start menu layout via a GPO or MDM policy, applying an XML file that sets the layout. Or, you could do a partial Start menu layout and let the user have the ability to create and edit their own groups. Or, you could just apply a default by updating the default user profile (either in an image, or at least before the user signs in), then let the user make whatever changes they want after they log on.

Windows 11 completely changed the Start menu, and changed the rules at the same time. Now, instead of an XML file, you need to use a JSON file. That JSON file can be used just like the XML file in order to configure the default user profile so new users signing in get that layout. And you can still deploy a policy via MDM, but the behavior described in the docs is quite bizarre:

When you customize the Start layout, you overwrite the entire full layout. A partial Start layout isn’t available. Users can pin and unpin apps, and uninstall apps from Start. When a user signs in or Explorer restarts, Windows reapplies the MDM policy. This action restores the specified layout and doesn’t retain any user changes.

The highlighting above is mine. I’m sure your users will be disappointed if the changes they make disappear each time the computer reboots (since that’s probably the only time they log out and back in again). So unless you’re going to set the “NoChangeStartMenu” policy to lock it down completely, using the MDM policy doesn’t make sense — configure both.

So let’s summarize what you should be able to do:

  • Lock down the entire Start menu layout using an MDM policy plus the NoChangeStartMenu policy. (You can’t use GPO, but you can work around it by directly importing the policy into the registry, see my previous post on that. Or you can set it using LocalMDM. But this is likely going to run into the behavior described above.)
  • Use the MDM policy without the NoChangeStartMenu policy, but this will work strangely as described above.
  • Use the Export-StartLayout cmdlet to export a JSON file and then use Import-StartMenu layout to add it to an image (since Import-StartMenu only works offline; you can’t use it on a running OS).
  • Copy an exported JSON file from a Windows 11 device and then copy it into the default user profile, as you could do with the (somewhat documented) XML layout in Windows 10 (and was done in the Autopilot Branding scripts).

I’ll assume that the first two methods still work (they did when I last tried it). Since the last method builds on the output of the third one, we should start with trying to verify that. So I customized the Windows 11 Start menu manually and then exported it using “Export-StartLayout -Path C:\Layout.json”. I copied the file to a different system where I mounted the Windows 11 22H2 WIM (updated in August) and tried to import it:

It didn’t work. And just for fun, I tried the fourth method as well, copying the exported layout to “C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml” and then signing on as a new user. That didn’t work either, the standard layout was still used.

What’s going on here? I think Jörgen’s post offers a critical clue: the only JSON file you can import is one that uses the OEM settings, not one that you exported. But those don’t replace the Start layout, they just add a limited number of items to it. Useful, but but quite the goal here.

More “creativity” required

Alright, the official methods failed, but the need is still there. Surely someone has figured out how to replace the default layout on Windows 11 with one of their own. (I don’t want to lock it down, I just want to put a reasonable alternate default in place.) Some quick internet searches keyed in on one specific file:

C:\Users\Default\AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState\Start.bin

You can capture the Start.bin file from a user profile and then copy it to the location above; when new users sign in, they’ll end up with the layout defined in that file. But checking my Windows 11 22H2 device, there is only a Start2.bin file present in that location. It appears that’s a change from previous Windows 11 versions, but the same process should work with that. So with a copy of that, we should be able to copy it to the C:\Users\Default location on a new device and see that new users signing in get the expected layout.

Finally, success. It’s a fairly minor change in this case since I was using Windows 11 Enterprise 22H2 which has three items on the default layout when you don’t have Office installed; I removed File Manager. (This may have also removed Office and other “hidden pins” that won’t show up unless the app is installed. I didn’t test this.) This is probably more useful in cases where you want to add additional pinned items, or if you are running on Windows 11 Pro which has a bunch of additional default pins.

Since I was modifying the Autopilot Branding content anyway to add this, I also added a couple of additional in-box apps in Windows 11 to the “remove” list, ClipChamp and Power Automate Desktop. The rest of the items put together for Windows 10 appear to still work fine with Windows 11.

11 replies »

  1. Hi Michael, would the Last one you tried allow the user to do “partial” changes to the layout or you end up with one locked?

    Like

  2. Hi Michael

    Could you reconfirm? it should be under logged in user directory not under C:\Users\Default

    C:\Users\LoggedinUser\AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState

    May be require to update article & the script aswell 🙂

    Like

  3. excellent as always and help us out a ton.
    We want to tweak the taskbar on first launch which we can do via some registry tweaks, but it seems when we try to load the default hive “REG LOAD HKLM\DEFAULT c:\users\default\ntuser.dat” it doesnt load and we an update the registry, ever seen this before?

    Like