Backup and restore Windows 10 Start menu tiles replacing vedatamodel.edb: no effects?
I found out where the issue lies. Microsoft has deprecated Tile Data Layer in Windows 10 1703 (the one I was using when I posted the question) and removed it in 1709.
Since Windows 10 1703, there are 3 folders + 1 reg key that hold the Start menu data (source):
"%LocalAppData%\Microsoft\Windows\CloudStore"
"%LocalAppData%\Microsoft\Windows\Caches"
"%LocalAppData%\Microsoft\Windows\Explorer"
I've created a script to backup and restore it correctly: StartTileBackup. Feedback and pull request are very welcome on Github.
The correct procedure to export and import the Start menu layout in Windows 10 is described below.
Exporting
After the Start menu has the configuration that you want to deploy, you have to run the following PowerShell command:
Export-StartLayout -Path C:\tmp\start.xml
This exports the current Start menu configuration to an XML file.
Importing via PowerShell
Run the following PowerShell command:
Import-StartLayout -LayoutPath .\start.xml -MountPath C:\tmp
The C:\tmp
folder should be replaced by another, non-temporary folder.
Importing via Group Policy
One can deploy the settings via Group Policy.
At the target computer, press Win + R, type gpedit
and hit Enter.
The policy can be found at User Configuration > Administrative Templates > Start Menu and Taskbar. The same policy is also available under Computer Configuration.
Double-click Start Layout, click Enabled and type the path to the file:
Click OK to finish. Logout/Login may be required.
A downside of this method might be that the Start menu will be locked. That is, the user can no longer pin or unpin tiles. However, perhaps this is just what you want.
If you want to update the fixed Start Menu layout, you will need to update the imported XML file. You can replace it with another XML file, but make sure the file name and path remains the same.
Export-StartLayout -Path C:\tmp\start.bin
Import-StartLayout -LayoutPath C:\temp\start.bin -MountPath C:\tmp
It should work, but only for the currently logged on user, and it will be standard for all the subsequent logons. So let’s assume that there are three users on the system. Whoever was logged on when this was run, his start menu will become standard for the remaining two users.