I recently had the privilege of helping a customer move to a new Windows 10 and Windows Server 2016 Citrix VDI environment. I greatly enjoy opportunities like these because you get to collaborate with the customer to build from the ground up with the goal of making the user experience awesome. At first, the Windows 10 or Windows Server 2016 start menu and taskbar layout may seem overwhelming. But I’m here to tell you, it can be done.
It’s no secret today’s Windows comes bundled with many apps and services. These system apps, installed apps, provisioned apps, Universal Windows Platform (UWP) apps, and even traditional Win32 apps are not all suitable for a VDI environment. Therefore, you want to be sure to clean up what’s included.
Why is this important?
Customizing the start menu and taskbar layout is an important step towards achieving a top-notch user experience. Customization helps keep user-profile sizes healthy by eliminating unnecessary storing of files that could otherwise lead to profile-bloat or long login times. It keeps things simple and helps users focus on the apps they need. Not every app needs to be in the taskbar or displayed as a tile. The goal is to make the environment simple, organized, productive, flexible, and manageable.
Where to Start?
I always start by gathering the user app list, and exploring how users interact with the apps. This helps identify different user-types and provides insight as to where in the start menu or taskbar each app should go.
If you’re working on a new environment, be sure not to bring any login scripts, GPOs, etc. over from an older environment until the new one is fully vetted. I’ve seen how this can cause conflicts.
And if you’re already in production, don’t get discouraged. Take the time to review your login scripts, GPOs, etc. to ensure they’re still needed and won’t cause any conflicts. What was created a year or more ago may not be needed anymore—or could benefit from a quick tune or tweak.
Turn off some of the consumer-provisioned apps via Group Policy here:
Computer Configuration | Administrative Templates | Windows Components | Cloud Content | Turn off Microsoft Consumer Experience
When ready, optimize your Windows image with Citrix Optimizer or VMware OS Optimization Tool. Both are great free tools to help you optimize the OS and remove some of those included Windows apps (I promise to cover these in a future post).
Then you can begin to install the user apps. Be sure you have the latest Windows OS Group Policy Administrative templates in your domain environment. The StartMenu.admx and StartMenu.adml files in particular are used to deploy the customizations.
The rest is handled by a Start layout xml file that is configured to use one of two available Start layout modification types:
- Full Start layout – With full Start layout, users can’t pin, unpin, or uninstall apps from the start menu. They can only view and open apps.
- Partial Start layout – With partial Start layout, users can’t change the tile groups defined in the layout but can modify other tile groups and create their own.
Getting Down to Customizing
Once all user apps have been installed, setup the Start screen to your liking and export the layout:
Export-StartLayout –path <path><file name>.xml
The generated layout xml file will be a full Start layout type.
To convert it to a partial Start layout, edit the layout xml file:
Find the <DefaultLayoutOverride> element and add LayoutCustomizationRestrictionType=”OnlySpecifiedGroups” to the element as below:
Then customize your app tile groups within the <StartLayoutCollection> element and save the file.
To quickly test, use either Import-StartLayout or Group Policy.
In partial Start layout, all tile groups added are locked and are identified with a locked icon.
Here’s how mine looks after customizing:
Adding Taskbar to the Layout
To add taskbar to the layout, edit the layout xml file and search for the <taskbar:TaskbarPinList> element. If present, add your taskbar apps under there. If missing, add the below at the bottom between elements </DefaultLayoutOverride> and </LayoutModificationTemplate>
<CustomTaskbarLayoutCollection> <defaultlayout:TaskbarLayout> <taskbar:TaskbarPinList> </taskbar:TaskbarPinList> </defaultlayout:TaskbarLayout> </CustomTaskbarLayoutCollection>
Here’s how it should look:
Then add your taskbar apps in-between elements <taskbar:TaskbarPinList> and </taskbar:TaskbarPinList> as shown in the sample below:
<taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Outlook 2016.lnk" />
Then save the file.
Here’s how mine looks:
Deploying your Customized Start and Taskbar Layouts
- To deploy, place the Start layout xml file onto a shared network storage location.
- Give admins full access, and give users read-only access to the xml file.
- Access Group Policy and go to: User Configuration / Administrative Templates / Start Menu and Taskbar / Start Layout
- Enable and enter the Start Layout File path.
As your app-base grows, you can simply update the layout xml file.
- The order of apps in the XML file dictates the order of pinned apps on the taskbar—from left to right—to the right of any existing apps pinned by the user. The following example shows how apps are pinned: Windows default apps to the left (blue circle), apps pinned by the user in the center (orange triangle), and apps you pin using the XML file to the right (green square).
- To remove all default pinned apps from the taskbar layout, just add PinListPlacement=”Replace” to the <CustomTaskbarLayoutCollection> element:
- If you use Group Policy and your configuration includes taskbar and a full Start layout, users can only make changes to the taskbar.
- If you use Group Policy and your configuration includes taskbar and a partial Start layout, users can make changes to the taskbar and to tile groups not defined in the partial Start layout.
- The layout modification allows four tile size options:
- Small tile: 1×1
- Medium square tile: 2×2
- Wide tile: 4×2
- Large tile: 4×4
- To determine tile position, row and column elements are used in the layout:
Lastly, if you need help expanding your organization’s pool of knowledge around End-User Computing, please reach out to us. We’d love to collaborate with you. Happy Customizing!
Architect, End User Computing at Anexinet