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.

  3. dave says:

    Great Info, one problem I’m encountering is that I can successfully combine my start and pin layouts while I’m in Audit mode. Once the machine is sysprep’ed, the start menu layout is correctly modified, but the Pinned icons disappear.

    Not sure what is happening. any insight would be greatly appreciated.

  4. Larry says:

    Doesn’t work in newest 1607 Build – Try doing this by installing from the latest 1607 ISO and you will discover the idiots at Microsoft broke this functionality.

  5. Jason says:

    Did they ever fix this in 1607? We are moving to 1607 next month.

    All I want is to set a default Start layout and default taskbar layout for new users that the users can change after they’ve logged in. That’s it.

  6. Daniel Kallert says:

    Did you ever find a reasonable solution?

    what I ended up with was more a workaround than a solution … in the TS it copies a exported LayoutModification.xml to “C:\Users\Default\Appdata\Local\Microsoft\Windows\Shell” (that’s what Import-Startlayout does), then I created two GPP, one to copy a temp file and a second to overwrite the LayoutModification.xml of the logged on user with a modified version (Item Level Targeting: if temp file exists then replace – “%localappdata%\Microsoft\Windows\Shell\LayoutModification.xml”)

    what happens now is that at the first logon the user gets a LayoutModification.xml with “StartLayoutCollection” and “CustomTaskbarLayoutCollection” settings and it creates the temp file. After the next logon or a gpupdate the LayoutModification.xml is overwritten with the second one that only has a “StartLayoutCollection” part and voila you get a fully user customizable start menu and taskbar.

    I know it’s not the best solution but the only one I found yet, maybe someone out there needs a simple workaround 🙂

  7. loosus456 says:

    We are struggling with this. Has a way been found to set both a default Start and default taskbar without locking any part of either one?

  8. Karl Gibbens says:

    I’m doing this all via GPO on a 2012 r2 Test domain clients pick up the startmenu layout fine but just point blank refuse to pickup any of the taskbar customisation. Seeing the success’ you’ve had here i’ve a feeling that i’ve missed something obvious but for life of me can’t see what. Any ballpark ideas?

  9. Alex F says:

    How about a PS script that applies the start and taskbar layout, but first looks in the registry for a custom entry in HKCU\Software saying something like StartmenuApplied=1?
    If the entry does not exist, it sets the layout and then adds the entry. If the entry does exist, the script does not apply anything.

  10. Rabbid10 says:

    I went back and re-read this article: https://technet.microsoft.com/en-us/itpro/windows/manage/configure-windows-10-taskbar

    In there is a line that says “If you specify an app to be pinned that is not provisioned for the user on the computer, the pinned icon won’t appear on the taskbar.”

    So, I took our StartLayout file and added this to end:

    Note: “%SYSTEMDRIVE%\My FAKE App.lnk” does not exist.

    Then I used Import-StartLayout to get the customized start menu and “blank” taskbar applied.

    Now the start menu looks the way I want and the taskbar is blank. Users can pin what they want to either without being locked out or having stuff added back. This doesn’t let me “customize” the taskbar per se, but at least I can remove both Edge and the Store, which is what I wanted in the first place.

    • Rabbid10 says:

      Ugh. It filtered out the XML…. Anyways, I added one item to the taskbar that pointed to a link that didn’t exist. Something like this:

      taskbar:DesktopApp DesktopApplicationLinkPath=”%SYSTEMDRIVE%\My FAKE App.lnk”

  11. binary says:

    I’m in the same situation 😦 I’ve been working for almost 8 years with OSD and I want to quit because of all those shity changes Microsoft made. Can someone confirm if the problem persist in the Creators update?

  12. Him says:

    What if I only want to do customization on Taskbar via GPO? Can I include LayoutCustomizationRestrictionType=”OnlySpecifiedGroups” in element without adding any customized groups to Start?

  13. Drew says:

    Maybe some one from here can answer this question.

    First let me say thank you for taking the time to help me. I do have the line that makes it partial. I also read that the .xml file has to be read only, tired that and still no luck, user is still able to unpin from Start Menu (All App).

    Trying to deploy Start Menu and followed this link: https://docs.microsoft.com/en-us/windows/configuration/customize-windows-10-start-screens-by-using-group-policy

    Have it working, but still have a small issue.

    I have the partial working, but the user is still able to unpin from the Start Menu (All App), not from the actual Tile Menu. Because the user can unpin from the Start Menu (All App) it removes it from the Tile Menu.

    For example, I have MS Access on the Start Menu (All App) and within a Group in the Tile Menu, the user can not unpin it from the Tile Menu, but can right click and unpin it from the Start Menu (All App), and when it’s unpinned from the Start Menu (All App) it removes it from the Tile Menu.

    I’m using 1703 Enterprise and using Group Policy. I’m coping the .XML file local and pointing the Group Policy to the file, but can not figure out how to disable the unpinning from the Start Menu that removes it from the Tile Menu when I think it should not so that.

    Any ideas, hope I explained this correctly. What is the point to create all this to have a right click on the Start Menu and unpin it from the Tile Menu.

    .XML File

  14. Kennet Juul Larsen says:

    If you got a lock startmenu,

    you can click on start, fine the same item, rightclick on it and click unpin it will be remove from the lock startmenu.

    do you known a way to fixes this?

  15. Jesse Harris says:

    Please upvote this:
    https://aka.ms/Jvcca0

  16. Adam says:

    LayoutCustomizationRestrictionType=”OnlySpecifiedGroups”

    This causes Explorer to crash incessantly. Any ideas? I see you only added that element to the top and not the bottom. I’ve tried every which way.

  17. Thomas says:

    Thank you for doing all these tests.
    To change the start layout you can apply this registry key:
    HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer\LockedStartLayout = 0

    Link:
    https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/dn467928(v=ws.11)
    Found on https://social.technet.microsoft.com/Forums/en-US/2f59f6ef-a67a-4adc-8a44-d8c78a5b267f/how-do-i-remove-all-live-tiles-from-start-menu-via-gpo?forum=win10itprosetup

  18. John says:

    Hi
    How I can remove weather from your xml file? Search in taskbar is still there, how to remove it?
    thanks

  19. John says:

    I would like to remove all from taskbar with combination of exported layout but always gets corrupted
    Here output of exported layout

  20. John says:

    Ok finally combined it correctly but still how to remove cortana search from taskbar?

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s

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