Windows 10 Start Menu Behavior Rationalized
Buckle up for another Master Class from Jacques Bensimon. Some deep dives into the Windows Start Menu behavior and some great tips on how to accomplish the customizations your users and clients demand.
I haven’t been shy in recent years about expressing my dislike for the Windows 10 Start menu (see this and this), but unless as system builders and administrators we are willing to consider third-party alternatives, live with it we must. This post isn’t about its dreaded pinned items, where they’re stored, how to make them roam, etc. (for that, see for example James Rankin’s excellent article here). Rather, my aim is to describe a couple of odd Start menu behaviors, some of which you may not have noticed, and to provide a workaround for some of them.
Going back a few years, the displayed contents of the Windows Start menu up to Windows XP/2003 could reliably be expected to reflect the merged contents of the “public” Start Menu folder “%AllUsersProfile%\Start Menu” (by default, and if not blocked by policy) and of the user Start Menu folder “%UserProfile%\Start Menu” (by default).
Items in these folders (shortcuts and subfolders, i.e. submenus, other than Programs) were displayed at the top of the Start menu root, and items in their Programs subfolder (again shortcuts or subfolders/submenus) were displayed off a submenu at the bottom called “All Programs” (or in some versions “More Programs” or simply “Programs”). As a reminder, there were no limitations placed on submenu “depth”, so items in subfolders (and subfolders of subfolders, etc.) of the Start Menu and Programs folders were dutifully displayed as additional fly-out submenus (and sub-submenus, etc.).
A few things changed with Windows 7/2008 R2 (actually probably Vista/2008 — who cares!):
1: The public Start Menu folder moved to “%ProgramData%\Microsoft\Windows\Start Menu” and the user Start Menu folder moved to “%AppData%\Microsoft\Windows\Start Menu” (junctions to these new locations were placed at the old locations for the benefit of legacy programs, especially installers). With one exception (next item), the shortcuts and submenus displayed in the Start menu continued to exactly reflect the combined contents of these two folders, including their Programs subfolders as before and still without limitations on submenu depth.
2: The top area of the displayed Start menu became reserved for showing Start Menu pinned items, so all items (again shortcuts and subfolders other than Programs) in the root of the public and user Start Menu folders were now displayed as if they were in fact stored in their Programs subfolders, i.e. it now made no visual difference whether items were stored directly in the Start Menu folders or under their Programs subfolders – they were all shown mixed together after selecting “All Programs” in the Start menu. Keeping this rule in mind, what was displayed in the Start menu (pinned and recent items aside) remained however entirely predictable on the basis of the two “Start Menu“ folders, as before.
3: Fly-out submenus were gone for good, replaced by the claustrophobia-inducing single column Start Menu that continues to this day.
Skipping right over Windows 8/2012/8.1/2012 R2 (you’re welcome!), we now arrive at Windows 10/2016/2019, and here (aesthetics aside), a few more rather dramatic changes occur, of which the first two I’m sure you’re already aware:
1: Invoking the Start menu now in principle (I’m getting there!) immediately displays the contents of the combined “Start Menu” and “Start Menu\Programs” folders and all their subfolders without having to first select an “All Programs” item (still as a single column, and provided the default “Show app list in Start menu” user setting isn’t disabled). Also optionally shown in that single column are recently added, most used, and suggested (ugh!) apps, which I’ll ignore here.
2: Gone are multi-level submenus! Direct subfolders of the Start Menu and Start Menu\Programs folders are still shown as submenus in the single-column Start menu, but their contents are now flattened into a single list combining all their (no longer displayed) subfolders. This can lead to unwieldy Start menus and to ambiguous Start menu items (same-named shortcuts from different subfolders), and requires a serious rethinking of how you organize Start menu items in your builds. But you already knew that.
3: This, however, you might not have noticed: if multiple shortcuts in or under the Start Menu folders have the same target (even if they have different names, and even if one is a Windows Installer shortcut and another is a “normal” shortcut), only one of them will be displayed in the Windows 10 Start menu. If you care, the display priority for shortcuts with identical targets seems to be somethings like this:
a) User shortcuts always “win” over any public shortcuts.
b) Start Menu shortcuts win over “Start Menu\Programs” shortcuts.
c) Root folder shortcuts win over subfolder/submenu shortcuts.
d) At the same level, alphabetical priority is employed.
While I’m wondering why Microsoft felt the need to implement such a tedious comparison of all shortcut targets before displaying the Start menu, you on the other hand may be wondering why I would want to display duplicate items in the first place: it’s not necessarily me, it’s the clients! As just one example, some want the main Microsoft Office apps (say Outlook, Excel, & Word) to be shown at the root of the Start menu, but also want a Microsoft Office submenu containing all the Office apps, including Outlook, Excel, & Word.
In any case, if you’re scratching your head as to why some Start menu items aren’t showing up where you expect them to, identical shortcut targets are the most likely reason.
Workaround: Sensibly enough, Windows 10 doesn’t consider two Start menu items with identical targets but different command line arguments to be the same, and will display both, so if you can think of some useful (or do-nothing) argument(s) to differentiate two shortcuts, you can win this battle. Hint: Office apps ignore a blank argument (“”) on their command lines! In a bind, another workaround for providing a duplicate shortcut is to point it to a symbolic or hard link to the target executable, or to a “launcher” program (like CMD.exe or other) to indirectly execute the target program.
4: Another scenario in which a shortcut in a user’s “Start Menu\Programs” folder inexplicably doesn’t appear in the Start menu (once you’ve eliminated the duplicate target possibility) is this: when it comes to Desktop apps, Windows 10 will only pin shortcuts to the Start menu, so if at some point the user directly right-clicked an executable in a File Explorer folder and selected “Pin to Start”, and if Windows determined that no current Start menu shortcut already pointed to that executable (and was thus available to pin), it first created a shortcut to the executable (at the above-mentioned location) and only then pinned it. Such “convenience” shortcuts are not displayed in the Start menu (other than in the pinned items panel) despite possibly sitting side by side in the same folder with other shortcuts that are displayed. When their corresponding items are unpinned, these phantom shortcuts are automatically deleted.
Workaround: Unpin the item, manually recreate the shortcut at the same location, then pin that!
5: One last explanation for shortcuts that exist somewhere under the Start Menu folders but aren’t displayed in the Start menu (once you’ve eliminated the “duplicate targets” and “phantom shortcuts” possibilities) is that Windows “doesn’t like something” about them. I’ve seen this especially with some shortcuts inherited or copied from prior Windows versions.
Workaround: Delete and recreate the shortcut!
6: The “Start Menu\Programs\Startup” folders (auto-launch items) and their contents are no longer displayed in the Start Menu in Windows 10 as they were in previous Windows versions. While not a bad idea on Microsoft’s part, this could have been problematic (given the “duplicate targets” issue) if users require access to one of them in case they need to re-launch it. The good news is that Startup shortcuts never mask identical shortcuts elsewhere in the Start menu, so you can just add the same shortcut at a different location.
7: Finally, Start Menu subfolders to which a user doesn’t have Read access are completely hidden from the user in the Start menu (unlike previous Windows versions where they were shown as empty submenus). This is potentially very useful to neatly only show relevant/permitted apps to various user groups. As an example, limiting visibility of the public Administrative Tools folder (displayed as the Windows Administrative Tools submenu) to only admins and other IT staff is often a good idea.
Okay, I’m out.
Be sure to follow Jacques Bensimon on twitter at @JacqBens