Throwback Thursday: Evolution or Revolution? The Start Menu in Modern Windows

The Start Menu has existed in Windows-based operating systems for over twenty years. Two decades of exposure to it has given us a generation that have come to depend on it as the primary way of interacting with computing devices, both in the workplace and at home. With such a popular concept, provisioning this to users, and allowing them to manage it, becomes paramount for those in enterprise IT departments.

How can we manage the Start Menu for our users today? Let’s start with a walk down Memory Lane.

3.11 to 2000

The Start Menu was, when it first arrived, something of a revolution. Users had gotten used to the old Windows 3.x Program Manager interface, but it wasn’t the most intuitive system. Program Manager sat on top of the DOS system and ran the entire Windows graphical shell. It used the Windows Multiple Document Interface (MDI) to open its program groups in child windows.

Program Manager in Windows 3.11

When Windows 95 (and the first iterations of Windows NT4 Workstation) landed on users across the world, there had been a substantial shift in the operating system paradigm, with a whole new shell. Program Manager was still present in the OS (for those who wanted it, it could still be used as the base shell right up until Windows XP SP2), but the front-and-center position had been claimed by the new kid on the block, Windows Explorer, backed up by the “Start Menu” application launcher which could be triggered by clicking on the Windows “Start” icon in the bottom left-hand corner of the screen.

The first revolution – the Start Menu in Windows 95

The Start Menu and Explorer together brought novel features, such as being able to view multiple drives in a single window, the ability to perform power-related actions, and a vast array of customization not possible in Program Manager before it. Windows NT4’s Start Menu was very much the same, except that it separated per-user shortcuts from shared shortcuts by a separator line and different folder icons.

The Start Menu was such a hit that it stayed in more or less the same format for the next few iterations of the Windows operating system. Through Windows 98, Windows ME and Windows 2000, the evolution of the Start Menu was quite subtle. The major change was that users could customize the Start Menu on-the-fly, and also added access to folders such as Internet Explorer Favorites, Documents and Administrative Tools (from Windows 2000 onwards).

XP to 7

Next up was Windows XP, and this brought a more noticeable change to the Start Menu. The launcher was switched to a “two-column” layout by default, with the left-hand column providing access to installed programs, and the right-hand column allowing the user to use “special folders” such as Documents, Music, Pictures and many others. It was still possible to restore the “Classic” Start Menu from Windows 2000 if the user so wished. Windows XP also introduced the concept of “pinning”, with users able to “pin” regularly-used applications to the top of the main Start Menu (when not in Classic mode).

Windows XP Start Menu

After Windows XP, Windows Vista came along, adding further changes such as the ability to perform text-based Search in the Start Menu and Pin items to the Taskbar. Windows 7 extended this more still, adding the concept of Libraries rather than just pointing directly to Special Folders, and introducing the paradigm of “Jump Lists”, adding cascading shortcuts to recently-used files from the shortcuts to the parent applications. Windows 7 also finally removed the capability to the invoke “Classic” Start Menu layout.

Up until this point, the basic tenets of the Start Menu – click on the left-hand corner to invoke the application launcher – had barely changed at all. Functionality and features had been added, but the actual entry point and user interface remained very similar, allowing users to quickly adapt to the evolved versions. Also, for administrators, the concept of managing the Start Menu had also barely changed. Although the location of the files that fed into it had moved through the filesystem, the concepts of populating and administering these files had never changed much at all through the versions.

However, that was all about to change.

Windows 8

Microsoft’s ideas for Windows 8 could be traced back to Windows Neptune, when they considered the concept of an Active Desktop-integrated “Start Page”. Neptune, however, never made it past a single alpha release that was only given to testers under NDA. More of a driver towards this was the explosion in tablet and mobile computing, and Microsoft had the idea that unification of the Windows mobile and desktop platforms would be the revolution that the Start Menu needed.

Unfortunately, the changes were way too dramatic for a lot of desktop users to either use, or feel comfortable with. The Start Menu now covered the entire screen, and no longer featured a right-hand column. Dynamic content could be displayed in shortcuts using “Live Tiles”. Recently launched programs no longer appeared, user organization of the programs list was no longer available, and power controls had been removed entirely, appearing now in the new “Charms” bar which was activated by moving to the right-hand corner of the screen.

Windows 8 – a bridge too far?

Windows 8.1 forced Microsoft to backtrack, as they restored the power controls by activating a “right-click” Start Menu of sorts, called the Quick Link Menu. However, for many users this wasn’t what they were looking for, and Windows 8 quickly became notorious as a difficult-to-use OS with a steep learning curve.

Windows 10

Many people expected, then, that Windows 10 would be to Windows 8 what Windows 7 was to Vista – a huge improvement. However, whilst ceding to users’ demands for the return of the original Start Menu paradigm – the concept of the button that could be activated for the non-fullscreen application launcher – Microsoft gave us something of a halfway house. Windows 10 looks more like the bastard offspring of Windows 7 and Windows 8.1, a Start Menu with something of a split personality.

On one side, you have the “All Apps” section, which is similar to that in Windows 7, except that it cannot be adjusted by the user, and as well as shortcuts to “legacy” desktop applications, also contains shortcuts to Microsoft’s new “Universal” applications. On the right-hand side is the “Start Tiles” section, which features live tiles similar to Windows 8’s Start Screen, as well as items that can be pinned by the user, such as applications, websites, folders and RDP connections. As well as recently-used items, the “All Apps” section can contain “suggested” applications from Microsoft, and the “Start Tiles” section also can display “featured” applications that are populated via an XML file in the default profile.

The main problem, though, especially for users in roaming or non-persistent environments, is that the Start Menu cannot be captured in its entirety in the same way as Windows 7 and earlier. Filesystem and Registry entries are not enough to manage the Start Menu in Windows 10. Under the hood, the “Start Tiles” section of the Start Menu lives in a database called vedatamodel.edb in the %LOCALAPPDATA% folder, which, combined with the legacy apps in %PROGRAMDATA% and the provisioned Universal Apps in the user profile, combines to create the whole Windows 10 Start Menu experience.

Windows 10 is billed as the last major version of Windows, and although Microsoft have made some slight subtle changes to the Start Menu (such as changing the layout slightly in the 1607 “Anniversary” update), it appears that this incarnation of it will be the one we have to deal with for the foreseeable future. So how do we go about dealing with the challenges of the new Windows 10 Start Menu?

Databases?

Using .edb files (Jet Blue databases) appears to be one of Microsoft’s favourite ploys at the moment. Internet Explorer relies quite heavily on one of these (holding Cookies, History, pointers to Temporary Internet Files, EMIE lists, compatibility mode settings, and more), the Notification Center also uses one, and so do a great many of the Universal Apps. Ostensibly they are utilized for performance reasons, but it is entirely possible that Microsoft are trying to foster a dependence on their own tools, whereas previously there was a whole plethora of third-party applications that could deal with these parts of the operating system.

Reasoning notwithstanding, how can the various components of the Start Menu in Windows 10 be effectively captured?

Capturing the Start Menu settings

There are various parts to this:-

%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs – this contains the shared All Apps legacy shortcuts

%APPDATA%\Microsoft\Windows \Start Menu\Programs – this contains user-specific All Apps legacy shortcuts, as well as any websites, folders or RDP items that have been pinned to the Start Tiles area

%LOCALAPPDATA%\TileDataLayer\Database\vedatamodel.edb – this contains the database that drives the Start Tiles area of the Start Menu, as well as the Universal Apps shortcuts that appear on the All Apps area

%SYSTEMDRIVE%\Users\Default\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml – this file populates the original set of Start Tiles for a user logging on for the first time, but can be customized by exporting a layout via PowerShell and placing the export file in the same folder with the name of LayoutModification.xml

If you want to roam the Start Menu, then there is simply no getting away from the fact that you will need a third-party tool. Because the database for the Start Menu sits in %LOCALAPPDATA%, a traditional roaming profile will not work. Folders can only be excluded from a roaming profile, not added to it.

Microsoft suggests using Enterprise State Roaming (ESR) in the first instance, their Azure-based settings synchronization tool. However, ESR requires a Premium Azure AD subscription, and can only roam the settings for Universal Apps, which means you will need to use Microsoft’s Desktop Bridge to convert all of your legacy applications to Universal Apps.

Of course, there is also Microsoft’s own User Experience Virtualization (UE-V) which now ships as part of the operating system in Windows 10 Anniversary Update. However, UE-V doesn’t actually support (as yet) roaming of the Windows 10 Start Tiles – and that’s probably the most noticeable part of the Windows 10 Start Menu, which means that it isn’t great as a tool for capturing the Start Menu!

There are a number of third-party tools in this segment, and they all have varying degrees of success with capturing the Start Menu, and particularly the vedatamodel.edb file. One of these tools is AppSense Environment Manager Personalization Server, which captures Windows settings directly into an SQL database by using an agent on the endpoint to intercept filesystem and Registry reads and writes.

Personalization Server

AppSense Environment Manager Personalization Server 10.0 ships with a built-in “Windows Settings Group” that provides a capture process for the Windows 10 Start Menu. Driven by a Condition that limits it to Windows 10 endpoints (also built-in), it captures writes to the following files and folders, then injects them back in to the profile at logon when the user accesses a new or different Windows 10 device.

Once enabled, capturing these settings within Personalization Server allows smooth roaming of Windows 10 Start Menu settings that cannot be achieved with Microsoft’s own tools. It also brings the advantage of instant rollback in the event the Start Menu database becomes corrupted (which can happen quite regularly on Windows 10, typified by an error like that below, or simply a “dead” Start Menu), as Personalization Server makes archives of each individual setting it captures.

UPDATE! With the release of Environment Manager 10.1, the Start Menu should never get corrupted or lost when it is personalized. The method used for capturing the Start Menu database has been significantly improved and we have seen no more corruption occurrences with the latest release.

Summary

The Start Menu appears to have evolved well beyond what it originally was intended for. Originally simply a static “application launcher”, it has gradually added extra functionality that extended it beyond the first iteration. But with Windows 10, that level of extra functionality has been taken up a level, and with it, the complexity of managing and maintaining those settings.

Most people want to complete their migration to Windows 10, and ensure that their base enterprise operating system remains supported, with the minimum of disruption. To that end, they don’t want to re-engineer their entire solution or retrain all of their users – they just want to lift-and-shift their applications and data. If this includes the capability for roaming or hot-desking, or embraces a non-persistent environment, then capturing and maintaining the Start Menu settings becomes paramount. Users just want the experience to mirror that which they had previously.

If this sounds like the requirements you are looking at, then it is absolutely paramount that you adopt a solution that allows you to not just capture these settings, but also protect them from corruption.

James Rankin

James is somewhat of a legend in the Windows and AppSense community, and an authority on Windows 10 migration. He has delivered a series of posts on his own blog (http://www.htguk.com/blog/), covering what does and doesn’t work, as well as improvements Microsoft has made over the last 12 to 18 months that enable IT to deliver a better migration. James is based in the North East of England and is an independent consultant who frequently works with AppSense products.