Workaround for missing start menu tiles after a Windows 10 1709 upgrade

I have noticed recently that some users that have upgraded from 1607 to 1709 have lost their Start Menu tiles during the upgrade. I did a lot of research on the Start Menu topic and could only find one article from Microsoft stating that they were replacing the TileDataLayer feature with something called the TileStore. You can see the list of features that are removed or deprecated in Windows 10 Fall Creators Update here.

I’m suspecting that there is an issue migrating the tiles to this new feature and it is causing the start layout to become corrupt during the upgrade for some users. I even have a ticket open with Microsoft concerning this issue but unfortunately it does not look like it will be fixed anytime soon.

So here is my workaround and hopefully it can help someone else.

First you will need to make sure to export every user’s start layout. I am doing this with a scheduled task that will run the following Powershell script:

Export-StartLayout –path $env:LOCALAPPDATA\LayoutModification.xml

This will export the user’s existing start layout and it will copy it to their %LOCALAPPDATA% folder.

Once everyone’s start layout is exported, you can start the upgrade and run the following script at logon to bring back the user’s customized start layout:

If((Test-Path $env:LOCALAPPDATA\LayoutModification.xml) -eq $True) {
    Copy-Item $env:LOCALAPPDATA\LayoutModification.xml $env:LOCALAPPDATA\Microsoft\Windows\Shell\LayoutModification.xml -Force
    Remove-Item 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$start.tilegrid$windows.data.curatedtilecollection.root' -Force -Recurse
    Get-Process Explorer | Stop-Process
}

10 Comments

  1. How do you handle a computer with multiple users? Is there a way to export a person’s account that isn’t logged in?

    • Jose Espitia

      March 20, 2018 at 5:28 pm

      As far as I know there is no way to do this if the user is not logged in. Setting up a scheduled task weeks before your roll out should give you enough time to backup everyone’s start menu.

  2. Tony Perschall

    Jose,

    You are the man!!! I have spent countless hours fighting this using Microsoft’s recommended methods to no avail. This totally worked, and saved us lots of heartache! Thank you very much for figuring this out and for sharing it.

    Tony

  3. We are running into this exact same issue and I was on the verge of opening a case with MS. Did you ever hear anything back about it? PS great workaround I will have to give it a try!

    • Jose Espitia

      March 20, 2018 at 5:24 pm

      They asked me to try the latest 1709 ISO from VLSC but I just haven’t had time to test it since this workaround works 100% of the time. Please keep me updated if you hear of any updates!

      • Thanks! We are using the latest media. I actually tried the old original media thinking it was an issue with that. How were you kicking off the import? I am running the export as scheduled task, but creating a scheduled task for logon will re-import every time and revert any changes. Not sure on the best way to only run that once per user. Thanks for posting about this!

        • Jose Espitia

          March 20, 2018 at 8:16 pm

          I have been using the RUNONCE key to launch the script. This would ensure that it only runs once per user.

          • I was thinking of this as a solution, but I had 2 things I was unsure of. If I set the HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce registry doesn’t it only set for the user that is currently logged in during the TS or when the app runs? If the machine is shared I would need it to run for each every user. If I modify the default user hive this would only run for new users, wouldn’t it? Sorry to be a pain, just trying to come up with a last minute solution before our Prod roll out start next week :)

          • Jose Espitia

            March 21, 2018 at 6:19 pm

            HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce will only run for the current logged in user but you can write up a script that will scan through C:\Users and load every profile’s NTUser.dat so you can modify every user’s HKCU hive. You can also try adding the script to HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce. Let me know if you need any help and feel free to contact me via my contact page :)

Leave a Reply