Customize the Windows 10 Start menu layout using an XML file on Virtual Desktop
This guide is for customizing the Windows 10 22H2 Start menu on Citrix Virtual Desktop but the steps will be the same for Azure Virtual Desktop (AVD) or Remote Desktop services (RDS)
Windows 10 Start menu folder locations
There are three locations for Windows 10 Start menu shortcuts
All Users profile or Common Start menu
C:\ProgramData\Microsoft\Windows\Start Menu
Default User Start menu
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu
User Profile AppData Start menu
C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu
To create a standard Start menu layout on Windows 10, you'll need to make some changes to the different Start menu locations.
Virtual Desktop Start menu layout
In a Virtual Desktop environment, you most probably want to delete the Default user Start menu and make some changes to the All Users profile Start menu.
This means we don't have to figure out which Start menu items are being applied from which location.
Removing the default user start menu means it doesn't get applied at all and we only have to customize shortcuts on the All Users profile Start menu
Delete Default user Start menu
On the Master image Virtual Machine, backup then delete the contents of this folderC:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu
Customize All Users profile or Common Start menu
Backup this folderC:\ProgramData\Microsoft\Windows\Start Menu
then delete these folders
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Maintenance
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessibility
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System Tools
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools
and delete these shortcuts
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories
Internet Explorer
Math Input Panel
Quick Assist
Steps Recorder
Windows Fax and Scan
Create Start menu shortcuts
Next, we'll create some Start menu shortcuts for Control Panel, File Explorer and Logging off
File Explorer Shortcut
Create File Explorershortcut on All Users Start menu
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
File Explorer%windir%\explorer.exe
Control Panel shortcut
Create Control Panel shortcut on All Users Start menu
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories
Control PanelC:\Windows\System32\control.exe
Log Off shortcut
Create Log Off shortcut on All Users Start menu
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
Log OffC:\Windows\System32\logoff.exe
Icon path:%SystemRoot%\System32\SHELL32.dll
Customize Default User Start menu layout
In the next steps, we are going to export the Start menu layout and apply it to the Default user profile.
This means the Start menu layout will get copied when a new user profile is created, but the layout will not be mandatory.
Users will be able to pin and unpin items from the Start menu to customize it themselves. So everyone gets the same initial Start menu layout that they can change if they want to.
Create Start menu layout
Pin apps to the Start menu and arrange them to create a new Start menu layout
Export Start menu layout
Export Start menu layout to XML file using PowerShell
Export-StartLayout –path C:\Temp\StartLayout.xml
Edit the Start menu layout XML file
You can edit the XML file to make changes to Start menu shortcuts
Example Start menu layout XML file
<LayoutModificationTemplate
xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout"
Version="1">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6">
<start:Group Name="Microsoft Office">
<start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Word.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Excel.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Outlook.lnk" />
</start:Group>
<start:Group Name="Browsers">
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk" />
</start:Group>
<start:Group Name="Utilities">
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Log Off.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\File Explorer.lnk" />
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
Import layout XML to Default user Start menu
Run the following PowerShell to import the new Start menu layout to the Default user profile
Import-StartLayout -LayoutPath "C:\Temp\StartLayout.xml" -MountPath "C:\"
This PowerShell command imports the start menu layout xml file to the file C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml
Test new Start menu layout
Create a new profile for a user account to test the new Start menu layout
References:
by Author
Windows PowerShell - Import-StartLayout
https://learn.microsoft.com/en-us/powershell/module/startlayout/import-startlayout
Customize and export Start layout
https://learn.microsoft.com/en-us/windows/configuration/customize-and-export-start-layout

Comments