Windows 10 1607 – Taskbar and Start Customization Deep Dive

Posted: August 18, 2016 in Windows 10
Tags:

With the announcement of taskbar configuration in Windows 10 1607, I was eager to start exploring this option.

There is already released a couple of blogposts on this subject from highly skilled persons.

So I started out with high hopes, but sorry to say the way things are working now, this is not usable for me and the scenarios I’ve been working with.

Let me start by explaining what I would like to achieve; I would like to set a starting point for both start and taskbar, where users are able to pin their own stuff and unpin anything they don’t want there.

Take 1 – Setting Start and Taskbar Layout with PowerShell

What I find here is that you must combine both start and taskbar settings in one XML file, if you apply two XML files with separate settings for Start and Taskbar, last writer wins since they both update the C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml. So if you first apply Start.xml and then Taskbar.xml and login with a new user, only the Taskbar is customized.

So I combined my start and taskbar settings into the following XML file C:\Temp\StartAndTaskbar.xml
This is the content of the XML file

<LayoutModificationTemplate xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" Version="1">
  <LayoutOptions StartTileGroupCellWidth="6" />
  <DefaultLayoutOverride>
    <StartLayoutCollection>
      <defaultlayout:StartLayout GroupCellWidth="6" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout">
        <start:Group Name="" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
          <start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
        </start:Group>
        <start:Group Name="" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
          <start:Tile Size="1x1" Column="0" Row="0" AppUserModelID="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar" />
          <start:Tile Size="1x1" Column="1" Row="0" AppUserModelID="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.mail" />
          <start:Tile Size="1x1" Column="2" Row="0" AppUserModelID="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
          <start:Tile Size="1x1" Column="3" Row="0" AppUserModelID="Microsoft.WindowsStore_8wekyb3d8bbwe!App" />
          <start:Tile Size="1x1" Column="4" Row="0" AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
        </start:Group>
      </defaultlayout:StartLayout>
    </StartLayoutCollection>
  </DefaultLayoutOverride>
  <CustomTaskbarLayoutCollection PinListPlacement="Replace">
    <defaultlayout:TaskbarLayout>
      <taskbar:TaskbarPinList>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />
      </taskbar:TaskbarPinList>
    </defaultlayout:TaskbarLayout>
  </CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>

Applied it with the following PowerShell command

 Import-StartLayout -LayoutPath C:\Temp\StartAndTaskbar.xml -MountPath $env:SystemDrive\ 

and logged in with a new user account.

1
Everything looks good I get the Start and Taskbar customization I applied.

2  3

I’m able to pin new items to Start and unpin what I don’t like, same goes for Taskbar.

4

So I’ve used the baseline applied to customize the layout just the way I like it, let’s log out and back in and see what happens.

Start looks nice, everything just the way I customized it. But what happened to the Taskbar? The baseline icon where added back so now I have both the one I added and the icon added by the baseline XML.

5

This is not good and will not roll with most users. If you spend time on customizing something, you would like it to stick.

After reading the documentation I see that this is by design,

If you use a provisioning package to configure the taskbar, your configuration will be reapplied each time the explorer.exe process restarts. If your configuration pins an app and the user unpins that app, the user’s change will be overwritten the next time the configuration is applied. To apply a taskbar configuration and allow users to make changes that will persist, apply your configuration by using Group Policy.

I need to find another way.

Take 2 – Setting Start and Taskbar Layout with Group Policy

Since I can only specify one XML in the GPO, I specify the combined XML (C:\Temp\StartAndTaskbar.xml) containing both setting for my start and taskbar.

6

I log in with a new user account and I get my baseline customization.

7

As in previous Windows 10 version if you configure start layout with GPO the user is not allowed to unpin anything or pin anything, they must use the predefined layout. This might be OK in some cases, but not my scenario. (Pin to Start is missing)

8

But let’s look at the Taskbar, I’m able to pin my own icons and unpin those applied through GPO.

9  10

Let’s log out and back in and see what happens now.

11

Start looks the same since I’m not allowed to do any customization. But that Taskbar is exactly like I customized it, none of the baseline icons was added back. This is exactly how I want the Taskbar customization options to be.

So could I combine Take 1 and 2 to get the result I want, let’s see.

Take 3 – Setting Start Layout with PowerShell and Taskbar Layout with Group Policy

So now I’ll need two XML files one with the Start layout and one with the Taskbar layout.

I create Start.xml

<LayoutModificationTemplate Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
  <LayoutOptions StartTileGroupCellWidth="6" />
  <DefaultLayoutOverride>
    <StartLayoutCollection>
      <defaultlayout:StartLayout GroupCellWidth="6" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout">
        <start:Group Name="" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
          <start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
        </start:Group>
        <start:Group Name="" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
          <start:Tile Size="1x1" Column="0" Row="0" AppUserModelID="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar" />
          <start:Tile Size="1x1" Column="1" Row="0" AppUserModelID="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.mail" />
          <start:Tile Size="1x1" Column="2" Row="0" AppUserModelID="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
          <start:Tile Size="1x1" Column="3" Row="0" AppUserModelID="Microsoft.WindowsStore_8wekyb3d8bbwe!App" />
          <start:Tile Size="1x1" Column="4" Row="0" AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
        </start:Group>
      </defaultlayout:StartLayout>
    </StartLayoutCollection>
  </DefaultLayoutOverride>
</LayoutModificationTemplate>

And Taskbar.xml

<LayoutModificationTemplate xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" Version="1">
  <CustomTaskbarLayoutCollection PinListPlacement="Replace">
    <defaultlayout:TaskbarLayout>
      <taskbar:TaskbarPinList>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />
      </taskbar:TaskbarPinList>
    </defaultlayout:TaskbarLayout>
  </CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>

I import the Start layout XML with PowerShell,

 Import-StartLayout -LayoutPath C:\Temp\Start.xml -MountPath $env:SystemDrive\ 

and I set the Taskbar layout XML in GPO.

12

I log in with a new user and see that my customization is in place, but since the GPO for start menu is used the option to customize the start is locked even though no start settings is specified in the XML file. (I can not Pin new itmes to Start or Unpin existing items)

13  14

So for now this option is not usable for me.

What I hope for is consistent results with the use of PowerShell or GPO, so we getting matching result for Start and Taskbar, not the way it’s now where it works opposite of each other making it impossible to combine so you must choose between customizing Start or Taskbar. There is no way anyone will apply only taskbar settings through GPO and blocking Start for all user customization. (If they don’t have a scenario where blocking the Start for customization is applicable)

Update

Take 4 – Setting Start and Taskbar Layout with Group Policy using a Partial Start Layout

After I published the article Rico and Rudy made comments pointing out a new feature that was made available in Windows 10 1511 allowing us to do partial lockdown of the Start layout. You can read about this feature here and here.

Even though I from reading this sees that this will not meet the requirements for my scenario, I decided to update the posting with this possibility also since it’s what get me closest to what I need

So I update my combined XML file to include LayoutCustomizationRestrictionType=”OnlySpecifiedGroups” in <DefaultLayoutOverride> element as you can see below

<LayoutModificationTemplate xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout" Version="1">
  <LayoutOptions StartTileGroupCellWidth="6" />
  <DefaultLayoutOverride LayoutCustomizationRestrictionType="OnlySpecifiedGroups">
    <StartLayoutCollection>
      <defaultlayout:StartLayout GroupCellWidth="6" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout">
        <start:Group Name="" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
          <start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
        </start:Group>
        <start:Group Name="" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
          <start:Tile Size="1x1" Column="0" Row="0" AppUserModelID="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar" />
          <start:Tile Size="1x1" Column="1" Row="0" AppUserModelID="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.mail" />
          <start:Tile Size="1x1" Column="2" Row="0" AppUserModelID="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
          <start:Tile Size="1x1" Column="3" Row="0" AppUserModelID="Microsoft.WindowsStore_8wekyb3d8bbwe!App" />
          <start:Tile Size="1x1" Column="4" Row="0" AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
        </start:Group>
      </defaultlayout:StartLayout>
    </StartLayoutCollection>
  </DefaultLayoutOverride>
  <CustomTaskbarLayoutCollection PinListPlacement="Replace">
    <defaultlayout:TaskbarLayout>
      <taskbar:TaskbarPinList>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />
      </taskbar:TaskbarPinList>
    </defaultlayout:TaskbarLayout>
  </CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>

I then specify this combined XML in GPO, since applying it with PowerShell will not work for the Taskbar as we saw in Take 1.
1

I log in with a new user account and I get my baseline customization.

2

I can now Pin new items to start, but I cannot Unpin any of the baseline items from the XML file applied. I can Unpin from the Taskbar applied through the same XML (see Take 2).

3  4

So I pinned two new items to start and logout and back in to see if the change will persist and it does.

5

So now users can add their own items to start and even re-arrange the predefined groups and it will stick. But they are not allowed to Unpin any of the predefined, you can quickly identify these locked groups by the padlock on the top left of each group.

6

So while this option gets me close to what I want and how I think this should work, I’m still not there. As stated I want to provide the user with a fully customizable baseline of Start and Taskbar layout, where the user can remove anything they don’t want there and add whatever they need.

If the Taskbar option was switched between how it’s working when applied with PowerShell vs. GPO we would have a consistent implementation of the customization option and what most people are requesting when working with this feature.

Again if you have any input, please feel free to leave a comment.

Advertisements
Comments
  1. Rico Rosenheim says:

    To enable users to pin there own apps while keeping the XML pinned apps locked look at the Partial Lockdown part of the start menu XML file in https://blogs.technet.microsoft.com/deploymentguys/2016/03/07/windows-10-start-layout-customization/#Partial

  2. Rudy Bankson says:

    This lets you do a partial layout aka you get your required items pinned and locked, but someone can pin their own too. Is that what you were wanting?

    https://technet.microsoft.com/en-us/itpro/windows/manage/customize-and-export-start-layout#configure-a-partial-start-layout

    To configure a partial Start screen layout:
    1. Customize the Start layout.
    2. Export the Start layout.
    3. Open the layout .xml file. There is a element. Add LayoutCustomizationRestrictionType=”OnlySpecifiedGroups” to the DefaultLayoutOverride element as follows:

    4. Save the file and apply using any of the deployment methods.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s