Since a lot of people are having issues with the start menu tiles in their images, I decided to create the following script to help others troubleshoot some common issues that may occur.
Note: This script is compatible with Windows 10 1709 and above.
The script will run through the following checks:
- Checks to see if C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml exists
- Checks if the current user’s LayoutModification.xml matches the default profile’s LayoutModification.xml.
- Opens C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml so you can confirm whether or not this is the XML file that you imported in your OSD process.
- Checks to see if HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$start.tilegrid$windows.data.curatedtilecollection.root is causing the issue.
Download The Script Now!
$CurrentUserStartMenu = "$env:LOCALAPPDATA\Microsoft\Windows\Shell\LayoutModification.xml" $DefaultStartMenu = "C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml" If((Test-Path "$DefaultStartMenu") -eq $False) { Write-Host -ForegroundColor Red "$DefaultStartMenu does not exist!" Write-Host -ForegroundColor Green "Possible Solution - Use Import-StartLayout to import your start layout (You will need to login as a new user to see the changes)" $Prompt = Read-Host -Prompt "Press any key to exit" If($Prompt -ne $Null) { Return } } Else { If((Get-FileHash $CurrentUserStartMenu).hash -ne (Get-FileHash $DefaultStartMenu).hash){ Write-Host "The default profile layoutmodification.xml and the current user's layoutmodification.xml do not match!" -ForegroundColor Red Copy-Item "C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\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 $Prompt = Read-Host -Prompt "Is your custom start layout visible when you launch the start menu? (YES, NO)" If($Prompt -like "Y*") { Write-Host "Solution - Copying the default profile's layoutmodification to $env:LOCALAPPDATA\Microsoft\Windows\Shell\LayoutModification.xml fixed the problem" -ForegroundColor Red $Prompt = Read-Host -Prompt "Press any key to exit" If($Prompt -ne $Null) { Return } } Else { Write-Host "Unable to determine a solution" -ForegroundColor Red $Prompt = Read-Host -Prompt "Press any key to exit" If($Prompt -ne $Null) { Return } } } Write-Host -ForegroundColor Red "Confirm that the default start layout is the same start layout that you imported" Start-Process Notepad -ArgumentList "$DefaultStartMenu" $Prompt = Read-Host -Prompt "Is this the same layout that you imported? (YES, NO)" If($Prompt -like "Y*") { Remove-Item 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$start.tilegrid$windows.data.curatedtilecollection.root' -Force -Recurse Get-Process Explorer | Stop-Process $Prompt = Read-Host -Prompt "Is your custom start layout visible when you launch the start menu? (YES, NO)" If($Prompt -like "Y*") { Write-Host 'Possible Solution - Delete Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$start.tilegrid$windows.data.curatedtilecollection.root from C:\Users\Default\NTUser.dat' -ForegroundColor Green $Prompt = Read-Host -Prompt "Press any key to exit" If($Prompt -ne $Null) { Return } } Else { Write-Host "Unable to determine a solution" -ForegroundColor Red $Prompt = Read-Host -Prompt "Press any key to exit" If($Prompt -ne $Null) { Return } } } Else { Write-Host "Possible Solution - Replace C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml with your custom LayoutModification.xml(You will need to login as a new user to see the changes)" -ForegroundColor Green $Prompt = Read-Host -Prompt "Press any key to exit" If($Prompt -ne $Null) { Return } } }
Rocco Spagnuolo
Hi dear,
How and where should I run this script?
Jose Espitia
Rocco, just copy and paste the script into Powershell ISE and then run it.