Menu
CCMEXEC.COM – Enterprise Mobility
  • Home
  • General
  • Configuration Manager
  • Windows 10
  • Windows 11
  • Intune
  • GitHub
  • About
CCMEXEC.COM – Enterprise Mobility

Customizing Windows 11 default Start Menu during OSD using LayoutModification.json

Posted on October 13, 2021October 27, 2021 by Jörgen Nilsson

In Windows 11 we can no longer deploy a custom Start Menu layout as we could in Windows 10. We don’t have any “Partial” managed option either as we had in Windows 10. The Group Policy “Start Layout” can still be used to deploy a custom Taskbar layout, HOWEVER the end user can no longer pin apps to the Start Menu if it’s deployed to the client, more on that topic here: Modify Windows 11 Taskbar during OSD, Intune and GPO – CCMEXEC.COM – Enterprise Mobility

What can we do if we are not using Intune then? There is an option for OEMs to pin applications to the Start Menu by using a “LayoutModification.json” file. The functionality is a bit limited, but we can use it to pin apps per default during OSD. More information can be found here: Customize the Windows 11 Start menu | Microsoft Docs

What can we do then? These are the rules of the LayoutModification.json.

If we look at the Start Menu this is what the apps we place in the different sections ends up. When we have tested this is what we have observed so far:

  • Edge is always pinned first
  • Word, Excel, PowerPoint are automatically pinned if installed
  • Outlook is NOT pinned per default
  • If we add one of these apps in our Layoutmodification.json they will not move but they will take up one of the items that we can pin in the file.
  • Teams cannot be pinned as it isn’t installed for all users and not installed when the user logs on.

Here is my sample LayoutModification.json that can be used for testing. It can also be downloaded from here: https://github.com/Ccmexec/MEMCM-OSD-Scripts/tree/master/Windows11

{
    "primaryOEMPins": [
        {
            "desktopAppLink": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\7-Zip\\7-Zip File Manager.lnk"
        },
		{
            "desktopAppLink": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Endpoint Manager\\Configuration Manager\\Software Center.lnk"
        },
		{
            "desktopAppLink": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Outlook.lnk"
        },
        {
            "packagedAppId": "Microsoft.WindowsTerminal_8wekyb3d8bbwe!App"
        }
    ],
    "secondaryOEMPins": [
		{
            "packagedAppId": "Microsoft.WindowsCamera_8wekyb3d8bbwe!App"
        },
		{
            "packagedAppId": "Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe!App"
        },
		{
            "packagedAppId": "Microsoft.SecHealthUI_8wekyb3d8bbwe!SecHealthUI"
        }		
    ],
    "firstRunOEMPins": [ 
        {
            "packagedAppId": "Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App"
        }
	]
}

The result will look like this, Start will be divided in two:

During OSD I run a PowerShell script that copies the LayoutModification.json to the correct location.

My source files:

The PowerShell script:

Copy-Item -Path $PSScriptRoot'\LayoutModification.json' -Destination $env:SystemDrive'\Users\Default\Appdata\Local\Microsoft\Windows\Shell'

It is not perfect, but we can at least pin some default apps. If we should do that is up to you!
Thanks to my amazing colleague Sassan Fanai who helped a lot with testing all this out.
I hope you find it useful!

16 thoughts on “Customizing Windows 11 default Start Menu during OSD using LayoutModification.json”

  1. Daniel says:
    October 14, 2021 at 5:42 pm

    Awesome work!

    Reply
  2. Henric Appelgren says:
    October 21, 2021 at 10:40 am

    Hi Jörgen, any ideas on why this might not work for me? I can see the import script run during OSD without errors, I´ve used your sample file but also tried to export my own .json but after OSD the startmenu is just default..

    Reply
    1. Jörgen Nilsson says:
      October 27, 2021 at 9:02 am

      HI,
      I have uploaded the script and the laytoutmodification.json sample to Gitub https://github.com/Ccmexec/MEMCM-OSD-Scripts/tree/master/Windows11
      Tested it now and it works just fine, could be a copy and paste issue.

      Regards,
      Jörgen

      Reply
  3. Pingback: WIM Witch v3.2.0 - Windows 11 and Server 2022 Support - MSEndpointMgr
  4. Sherman says:
    October 25, 2021 at 1:07 pm

    Same problem here. 🙁

    Reply
  5. Yan says:
    November 5, 2021 at 11:32 am

    Hi,
    Is there a way to remove some icons via JSON such as the Windows Store, Alarms & clocks, etc…?
    Regards.

    Reply
  6. Michael says:
    November 24, 2021 at 10:52 pm

    Hi, I’m using your RemoveApps script and Startmenu layout script, it works, but why there are Solitaire, Xbox, Spotify, Disney+, PrimeVideo, TikTok, Instagram, Facebook still in the Start menu? Is there anyway to remove these? Thanks.

    Reply
  7. Michael says:
    December 2, 2021 at 7:32 pm

    Hi, any ideas how to remove promotional apps like Spotify, Facebook, Instagram in Start menu even after using the script?

    Reply
  8. Michael says:
    December 3, 2021 at 5:42 pm

    Using the script provided (RemoveApps and json file) but the promotional apps like Facebook, Amazon… still exist in Start menu, any ideas how to remove them too?

    Reply
    1. Jörgen Nilsson says:
      December 10, 2021 at 9:40 am

      Hi, What windows sku are you using?
      Regards,
      Jörgen

      Reply
  9. Michael says:
    December 14, 2021 at 6:34 pm

    Windows 11 Pro, OS Build 22000.258. Another note, the Startmenu layout seems to apply to the FIRST profile when logged on, meaning it is working. But when log in with another new profile, the Start menu go back to the ‘OEM’ one, meaning all the Facebook, Spotify, Solitaire, etc. reappearing right back? I really dont understand why the default settings does not apply to ALL users? any helps really appreciated.

    Reply
  10. Daniel says:
    January 27, 2022 at 9:23 am

    hello

    do you know if there is any way to setup taskbar alignment as well ? with this modification, we always end up with default middle position

    Reply
    1. Jörgen Nilsson says:
      January 27, 2022 at 9:40 am

      Hi, Yes I have written about it here: https://ccmexec.com/2021/10/modifying-windows-11-start-button-location-and-taskbar-icons-during-osd-autopilot/
      Regards,
      Jörgen

      Reply
  11. ZW says:
    April 28, 2022 at 6:12 pm

    This works for us for Group Policy managed devices…
    https://imgur.com/a/22dUhkh

    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\Start
    ConfigureStartPins
    {“pinnedList”:[{“desktopAppId”:”Microsoft.SoftwareCenter.DesktopToasts”},{“desktopAppId”:”MSEdge”}]}

    We use just use GP to create a registry entry in the following locations and it will build the custom start menu for any new user. My only gripe with this new start menu style is that you can’t “lock” the pinned tiles like you could in W10.

    Reply
  12. Ram says:
    October 20, 2022 at 9:35 pm

    Hi Jorgen,
    I created my custom .json file and tried your script for the Start Menu layout but the file is not copied over to the Users\Default\Appdata\Local\Microsoft\Windows\Shell location.
    My .json file is stored on a “Packages” folder on my site server. I also tried editing the PS script and replacing the -Path $PSScriptRoot with the UNC path to my “Packages” folder.
    Appreciate any assistance you can provide.
    Thanks

    Reply
  13. Pingback: Why does Windows 11 make Start menu layout so hard? | TechEvangs

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

My name is Jörgen Nilsson and I work as a Senior Consultant at Onevinn in Malmö, Sweden. This is my blog where I will share tips and stuff for my own and everyone elses use on Enterprise Mobility and Windows related topics.
All code is provided "AS-IS" with no warranties.

Recent Posts

  • Windows 365 Link – a week and some
  • Prevent software installations disguised as drivers
  • Tip when troubleshooting unexpected reboots during Autopilot – event ID 2800
  • New settings in Intune Security Baseline Windows 11 24H2 -2504
  • Managing extensions in Visual Studio Code
©2025 CCMEXEC.COM – Enterprise Mobility | WordPress Theme by Superb Themes
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.Accept Reject Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT