Many of you have been requesting this article and we actually took the time and did it for you, guys. It’s all about customizing your Start menu within Windows 10 and deploying it within your MDT.
In this article, we will show:
- How to customize Start menu layout in Windows 10;
- How to export the Start menu layout to an XML file;
- How to deploy the Start menu layout to the computers using MDT 2013.
The easiest way to create a custom layout to apply to other Windows 10 devices is to configure the Start screen on a reference computer and then export the layout. In this example we will use 10 Enterprise edition machine. First, you need to customize the Windows 10 Start menu in the way you want it to look. You can add necessary elements to the Start menu, arrange them in the necessary order (create your own columns and groups of applications), or remove unnecessary applications from the Start menu. You can even delete all items except File Explorer to keep the Start menu clean.
What we are going to do now is just right click and start removing stuff. Once it is done, just shrink it down. As you can see, you can easily customize your Start menu.
It’s just an example, so you can do whatever you want, it’s really up to you.
Now we need to capture that Start menu using PowerShell. We are going to open up file explorer and go to C:\ drive. Right now we don’t have anything right here, so it’s the same C: drive that you would normally get when you deploy an operating system. Now we need to create a folder here.
So, let’s right click on the Start menu and go to Command Prompt (as Administrator). Here use the command:
You can create a folder manually by going to the C: drive without command prompt, but we are geeky guys!
The next thing we need to do is capture our Start menu. We need to go to PowerShell. Just type in powershell and you will see PS letters in front of system32 path.
Now go to the layout folder and as you can see we have nothing in there. You can export the settings of the current Start menu layout to the XML format using the Windows PowerShell cmdlet Export-StartLayout.
export-startlayout -path c:\layout\layoutmodification.xml
Once it is done, you will see that you have that XML file in your folder.
You need to make sure that this is .XML file, it’s really important.
The screenshot below shows the contents of XML file, which is the export of custom Windows 10 Start menu layout.
After that you can exit from Command Prompt.
Now we are going to go inside MDT. Now you need to create a new Task Sequence:
- Go to the section Deployment Shares > MDT Deployment Share;
- Right click on Task Sequence and select New Task Sequence;
- Specify Task SequenceID (WIN10STARTMENU) and TaskSequenceName (Windows 10 x64 Start Menu Customization TS);
- For the Task Sequence type, select Standard Client Task Sequence;
- Select the OS image on the MDT for which you want to apply this task.
Copy your layoutmodification.xml from the Windows 10 reference computer and place it to the Deployment Repository folder on MDT server (..\DeploymentRepository\Scripts\Username\StartMenu\).
Note. You need to create a folder structure \Username\StartMenu\ by yourself.
So let’s double-click on your new Task Sequence and go to the Task Sequence section. We are going to go inside Custom Tasks, because this is where we are pushing everything out. Here we have created 4 custom tasks.
The first note is Copy Layout to Temp. We are running it as a command line (Add > General > Run Command Line).). The command line basically says that we are going to use layout modification and copy it to the Windows temp folder. We need to type in the next command:
xcopy /e /s /y /h /i %SCRIPTROOT%\Username\StartMenu\LayoutModification.xml c:\Windows\Temp
The second note is Restart Computer. Once we have exported the .XML file with our captured layout, we need to restart the machine.
The third note is Apply Custom Menu Layout. We are going to add an additional powershell script command. This command is actually going to run the import. Remember, we did the export, so now we need to run the import. We have created a PowerShell script in the ApplyCustomMenu.ps1 file.
This script contains the following code:
import-startlayout -layoutpath c:\Windows\Temp\LayoutModification.xml -MountPath $env:SystemDrive\
Tip. If you do not want to use the import-startlayout cmdlet, you can simply copy your LayoutModification.xml file to the directory C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\). To do this, you can use the command:
xcopy /e /s /y /h /i “%SCRIPTROOT%\Username\StartMenu\LayoutModification.xml” “C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml”
The last note is Create Local User. We are going to show you guys that it actually works, so we have created a local user. For some reason when the deployment finishes, it’s going to leave you inside the administrative account, where the Start menu doesn’t change. You can see the changes when you log into another account.
So, once it is done, click OK. Now you can deploy your operating system. In our case, we are going to use a virtual machine.
During deployment process you will need to select a task sequence to execute. Just select the task sequence we have created before (Windows 10 x64 Start Menu Customization TS).
Once deployment is completed, let’s click on the Start menu. Like we told you guys before, we are logged in as administrator and customization of the Start menu doesn’t show up. What we need to do now is just change the user. Let’s sign out and sign in account we have created in the last note.
If after deploying a customizable initial screen, some tiles are missing, most likely you are using tiles that require an .url or .lnk file. Such .url or .lnk need to be copied to one of the directories:
- %APPDATA%\Microsoft\Windows\Start Menu\Programs;
- %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs.
In Windows 10 1703, the Export-StartLayout cmdlet for the .url shortcut uses DesktopApplicationLinkPath. You must change the DesktopApplicationLinkPath to DesktopApplicationID and specify the URL.
Let’s click on the Start menu. As you can see, our customized Start menu like on your reference computer is there. How awesome is that! It’s not perfect, but you could basically customize it even more.
To prevent users from editing certain groups of the Start layout, you can customize the partial Start layout using your XML file. You can mark some groups of elements Start layout as locked. As a result, users will not be able to edit (delete, unpin, add) elements in these groups.
To set up partial start screen layout:
- Export the layout using the export-startlayout cmdlet;
- Open the resulting xml file with a text editor;
- If you want to block a specific item, then you need to add a special attribute in the tag <DefaultLayoutOverride>. For example: <DefaultLayoutOverride LayoutCustomizationRestrictionType=”OnlySpecifiedGroups”>;
- Save the XML file.
If the partial start layout is applied to the computer to which the StartLayout.xml file has already been applied, the previously added groups will be deleted, and the groups in the new layout will be added.
Note. In Windows 10 1709, Microsoft made several changes to the Start menu configuration.
Previously, this data was stored in TyleDataLayer\Database, but in this version it is now a combination of registry settings and files in the following paths:
- %APPDATA%\Microsoft\Windows\Start Menu\Programs).
Hope you guys enjoy this article. If you have any questions, just leave comments right below.