In my last post I wrote about how to make Internet Explorer the default web browser in Windows 10, now I will cover how to deploy a customized Start Menu during deployment and add a menu item for Internet Explorer the last took a while to figure out how to add the shortcut to Internet Explorer. There are many more ways to customize the Start Menu, deploy it as a mandatory Start Menu using Group Policies in that case the user cannot modify it.
Update 20160412: The IE shortcut is removed from the file system when upgrading to the next Windows 10 release, investigating why.
Let’s start with the basic information, the default Start Menu template is located here:
C:\Users\%username%\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml this file should not be modified. To modify the start menu we use file called LayoutModification.xml that should reside in the same directory. This file can be used in many ways for OEM’s to add icons to the Start Menu or for us IT-Pro to override the default Start Menu. More information on how to use these files can be found here on MSDN: https://msdn.microsoft.com/en-us/library/windows/hardware/mt171092(v=vs.85).aspx
Exporting a customized Start Menu layout
To export the Start Menu we start by using a computer and a user and adjust the Start Menu on that computer so it looks the way we want it.
Then we use Powershell to export a customized start menu using the following command, Export-Startlayout –path C:\Windows\Temp\Startmenu.xml
Then we have a .xml file with our current Start Menu Layout that looks like below that will override the default start menu defined in the DefaultLayouts.xml in Windows 10.
Import a Start Menu layout using Powershell
Now that we have an exported Start Menu we can import it using Powershell. All users that log on to the machine the first time will get this Start Menu layout that you import.
Import-StartLayout –LayoutPath C:\Windows\Temp\Startmenu.xml -MountPath $env:SystemDrive\
After the command is successfully completed the Layoutmodification.xml file is created here: C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\Layoutmodification.xml
When we log on to the computer as a “new” user that haven’t logged on the computer before we get the newly imported Start Menu as shown below.
But wait, where did the Internet Explorer icon that we added before go?
Solving the Internet Explorer icon issue
When we export the file above it exports the Internet Explorers ApplicationID in the .xml file. This will fail when you import it as the Internet Explorer icon doesn’t exist in the users Start Menu folder or as an application during when the Start Menu is imported. It doesn’t exist in the Default start menu folder either and it is not present as an ApplicationID when the Start Menu is imported and therefor it will not show up in the users Start Menu.
To solve this we need to do two things, add a .lnk file that points to Internet Explorer somewhere that all end-users can reach it. I will create it in C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories
Then we need to change the information in the exported .xml file as well. The following line in the .xml file needs to be replaced with a pointer to the .lnk file instead of the ApplicationID.
DesktopApplicationID=”Microsoft.InternetExplorer.Default”
So we replace it with the following line instead, using the DesktopApplicationLinkPath instead and pointing to the Internet Explorer.lnk file we created before.
DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk”
****Update: As per requested a sample file can be downloaded here with Office 2013 and the IE shortcut: StartMenu.xml****
If we then log on as a new user once again we get the Internet Explorer icon on the Start Menu as well as intended.
Applying the Start Menu during OS deployment
To deploy this I have written a simple Powershell script that imports the StartMenu.xml file and copies the Internet Explorer link we created before.
The Powershell Script content:
Import-StartLayout -LayoutPath $PSScriptRoot\StartMenu.xml -MountPath $env:SystemDrive\
Copy-Item -Path $PSScriptRoot'\Internet Explorer.lnk' -Destination $env:SystemDrive'\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories'
Then you are ready to test the deployment of a customized start menu including an Internet Explorer icon.
Excellent! I’ll give it a go later today.
Nice work and thanks for sharing!
Works flawlessly! Thank you so much!
Very nice! I attempted this a few weeks ago, but didn’t make the DesktopApplicationLinkPath change. That explains it all. Thanks!
Thank you! Worked like a charm!
Thank you 🙂
Please XML sample to download.
Hi,
good idea, I have added a sample .xml and updated the post!
/Jörgen
I followed the instructions for the Windows 10 start menu and it all worked fine – many thanks!
There’s just one trap, if you copy the string DesktopApplicationLinkPath=”%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk”
from above mind the quotes (”), they are cursive and caused an error when running the powershell command.
Great post. I’m in the early stages of getting a Windows 10 Enterprise image going for testing. I ran through your guide today and found that I did not need to create the Internet Explorer shortcuts and change the pointer info for the pinned IE. My exported start layout has the path for IE as DesktopApplicationID=”{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Internet Explorer\iexplore.exe” instead of DesktopApplicationID=”Microsoft.InternetExplorer.Default”. I have applied the latest cumulative update for Win10, so maybe the behavior has recently changed.
Another excellent post, Jörgen!
I cannot wait to give this a try.
Thanks for the info!
I am using MDT 2013 update 1. I am trying to run under postinstall, right after configure but getting error. tried after add windows recovery (winre) with no luck.
So I create folder under script, and running as command line (powershell.exe -executionpolicy bypass -File “%SCRIPTROOT%\Start-Layout-win10\ImportLayout.ps1”), getting error.
Where to run this script in mdt 2013????
I have followed your guide exactly but i always get error about invalid layout file.
Hi,
If you copy and paste from my blog post check the ” characters so that they are correct they normally would go wrong.
/jörgen
It’s seems that this procedure is not working on the new update 1511 version.
It’s like there is a script that install all the windows app things (like 3D builder, skype, mail, and all Metro staff)…
Hi,
I just tried it out and it worked just fine, what are you seeing? Is the machine upgraded to 101586 inplace?
/Jörgen
Great article. The resulting .xml file can also be deployed via group policy:
User Configuration -> Administrative Templates -> Start Menu and Taskbar -> Start Layout
Awesome tip regarding the rogue internet explorer shortcut!
I use MDT heavily in the workplace and have developed the following scripts that should in almost any environment. Go the following links and read the descriptions. Have a blessed day folks, I hope this helps somebody!
Script to modify “DeployWiz_ComputerName.vbs” to support “FriendlyNames”
https://community.spiceworks.com/scripts/show/3430-custom-modify_deploywizcomputername
Script to generate “DomainOUList.xml” from Active Directory with or without “FriendlyNames”
https://community.spiceworks.com/scripts/show/3426-custom-domainoulist_create-ps1
Script to join the current workstation to Active Directory Domain
https://community.spiceworks.com/scripts/show/3374-custom-ztidomainjoin-ps1
Script to move the current workstation to the specified OU during deployment
https://community.spiceworks.com/scripts/show/3375-custom-ztimoveadcomputer-ps1
This is great! For X6205 who had the invalid layout file error, I had the same issue. I worked around it by copying the XML to the target machine then running. See below:
Copy-Item -Path $PSScriptRoot’\StartMenu.xml’ -Destination $env:SystemDrive’\Windows\Temp’
Copy-Item -Path $PSScriptRoot’\Internet Explorer.lnk’ -Destination $env:SystemDrive’\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories’
Import-StartLayout -LayoutPath $env:SystemDrive’\Windows\Temp\StartMenu.xml’ -MountPath $env:SystemDrive\
The export and import seems work fine. I see the newly created/update Layoutmodification.xml in the C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\Layoutmodification.xml
When I log in as a new domain user, I don’t see the modified start menu.
I’m using Windows 10 Pro. Is that a problem?
Hi,
As the GPO for customizing the start menu requires Enterprise, so would most likely be the case for this method as well.
/Jörgen
Great article.
We are however seeing an issue if the user has a roaming profile, even though the Start Menu tiles don’t themselves roam.
If the user has no roaming profile, the Start Menu tiles appear as expected on every computer that they log into.
If the user has a roaming profile, the Start Menu only appears correctly on the first computer that they log into – the one used to create the profile. On every other computer, the tile layout still loads (from Layoutmodification.xml), however the only icons that appear are the AppUserModelID ones. The other icons are missing.
In addition, File Explorer and Settings disappear from the Start Menu.
We’re on build 1511 (Pro) with current updates.
Has anyone else seen this happen, or does it work for you?
Hi,
As the client already have a profile it will most likely not execute the imported one in that scenario..
/Jörgen
I’ve considered putting the start menu in during deployment, but what about where you need 2 or 3 different start menus that depend on the security level of the user?
We need to be able to bring these in on the fly when they log in.
Any ideas?
Gareth
Hi,
On the fly is tuff, could work if you modify the powershell script that is scheduled.. then you could check for AD-group or something. should work just fine.
/Jörgen
Looks like the location of the internet explorer lnk has changed in 1511. its not created in the programdata folder any longer, and can only be found when the user creates their profile. so maybe an update is in order?
Hi,
That is the same as in 1507, that is why I wrote that you need to create that link by yourself. “add a .lnk file that points to Internet Explorer….”
/Jörgen
Very helpful article. Successfully created the startmenu with all the tiles I wanted except IE. When I add the IE .lnk to the C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories, the link is there, but does not respond and the icon does not show for any user except the local admin. I am attempting this on the LTSB version of Enterprise. Can I get your thoughts?
Hi,
I haven’t tested it on LTSB at all actually, will try to find the time. It works just fine with a standrad user, no roaming profiles or anything like that in use?
/Jörgen
Hi,
I have been working on a Windows 10 image that has already been sysprepped with default user profile created and deployed it via SCCM. What I have noticed is that the start menu tiles after deployment are not arranged correctly. There are empty tiles at places, however all app tiles are present but the alignment is not right. When I deploy this image on a test machine manually using dism, the start menu stays intact. I have followed the suggestions of importing the start menu layout as well as tried copying the layout to the Default shell folder and can also see the new LayoutModification.xml moved across. I fail to understand is what SCCM is doing differently while applying the image.
It will be great if you could provide pointers on how to troubleshoot this issue. Also the machine is not domain joined with no GPOs applied.
Kind regards,
Shannon
Hi,
It is a very basic task sequence with no answer file, image already sysprepped, driver package applied and machine joined to workgroup. This was configured such that no domain related policies would be set on the laptop. Any logs I could view which would point out the start layout issue?
Thank you for your help.
Kind regards,
Shannon R
Excellent article, as always! However, I have one question…. when deploying the customized start menu using the method you describe above, can it be reconfigured later by the user? In my case, I would like to deploy a standard start menu to everyone, but allow them to modify it later, if they choose to.
Hi,
yes, if you deploy it using the Powershell command the user can modify it afterwards, if you want to lock it down you should use the GPO, then the end user cannot modify it in anyway.
/Jörgen
Well done! Thank you very much for sharing!
Jorgen/Mike,
I’ve followed your instructions to the letter, yet I’m still receiving the “invalid layout file” error. I tried Mike’s workaround of copying the .xml layout to the local drive before importing it, yet I still get the error. I haven’t tried exporting the layout again, but what could I be doing wrong?
/Bill
This might be a dumb question, but what application is that for your deploy steps?
HI Jorgen,
I have followed thoroughly your article. After i login on a Windows 10 (Version 1511 Build 10586.71) machine, the LayoutModified.xml is present and set to:
The ” Internet Explorer.lnk” icon is copied
Still o cannot see the Start icon, only an empty space
Note: i used copyprofile in unattend
Hi,
It is a known issue or feature that the import start menu feature isn’t executed when you use copyprofile as the user copies the admin profile and therefore have an existing profile already.
/Jörgen
Please fix references to layout file. It is not LayoutModifications.xml but LayoutModification.xml with no “s”
Done! Thanks for the feedback!
/Jörgen
I’ve also been using the method letter for letter on Build 1511 (10586.71), and the place for the Internet Explorer tile is blank. Damn it – why do Microsoft make it so difficult. Any ideas guys? Corporate users need IE still instead of Edge.
Unfortunately it don`t work for me either. I have exactly the same problem as Matthew. Maybe MS have changed something in build 1511?
It’s possible to do the same thing for existing user profile ?
Hi,
No as the Start Menu is already created at that time so it will ignore the file you import.
/Jörgen
We have a website that we would like to add to the custom start menu, which needs to open in Internet Explorer. Could you provide the correct syntax to enter, if it is possible to do that at all? Thank you.
Hi, i have the same problem, LayoutModification.xml not working.
on windows 10 64 pro
if i force with gepedit.msc the layoutmodification.xml work but the user can’t change the start menu.
A idea ?
Thanks
Hi,
If I understand you correctly your .xml file does work when you use it with a Group policy, the users cannot change the settings in that case and that is by design and how it works.
But it doesn’t work when you import it using powershell?
Is the user profile a new one or have you used CopyProfile for instance when deploying the computer?
/Jörgen
Hi, gpo it’s for test layout modification , it’s work.
I’m usingd mdt 2013 updt 2.
Import with powershell or copy during sequence to apply custom layout with no error.
layoutmodification.xml present in folder C:\Users\Default\AppData\Local\Microsoft\Windows\Shell.
But not apply o new user.
if i customise before sysprep an capture with copy profile it ok.
but il need to manage some start menu
Thanks
Windows Enterprise LTSB does not need the IE tweak to stay pinned on the Start Menu. Thanks for the info provided, was very helpful. Will recommend the article to anyone looking for the same fixes.
I am deploying Enterprise LTSB and can not get the IE to stay pinned. How are you doing it Everett?
Thanks so much, I had been doing another trick to get an IE Icon to show up, but this is better.
– Confirmed working in Windows 10 1511
– ConfigMgr 2012 R2 SP1
My apologies, I did use the copy IE shortcut task, but not the same way as this process. After setting up the Start menu to your liking and exporting the XML file, navigate to Start — All Apps — Windows Accessories, right-click on the IE icon and choose “Open file location”. When the folder location appears, simply copy that IE shortcut and paste it to “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Accessories” Then import your xml file and sysprep or just have a user login. This works for me on local and domain accounts.
I am trying to deploy this using SCCM AFTER OS deployment but it is not working. I created a package with a program that runs (as administrator)
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File .\ApplyCustomMenu.ps1
It deployes successfully but nothing changes. I am thinking its a permission issue?
One note… to save some other folks a little frustration… I read this post and didn’t love the idea of putting another shortcut on the “All Users” start menu in the Accessories folder… so I thought I could accomplish the same thing by putting a shortcut to IE in the Program Files (x86)\Internet Explorer folder and just using %PROGRAMFILES(X86)% reference rather than %ALLUSERSPROFILE% — I was wrong… for some reason, the system doesn’t have proper permissions to that folder in order to read or create the shortcut…but when I copied the identical LNK file to the %ALLUSERSPROFILE% folder mentioned above, it worked perfectly… Dang! That’s strange, don’t you think?
Chris
Is there a reason this wouldn’t work being deployed as a package? For example, we have ConfigMgr tied to an MDT database which allows role based deployment. All of our roles have different Start Menus. Would creating this as a package fail for some reason?
I have read through the comments and followed this multiple times and I’m not having any luck. Running windows 10 Pro v1511 OS Build 10586.0. I’m not as concerned with the IE icon as I am with the start menu. I have run the command locally and it acts like it is running but no change and no error. Has anyone with this version got this to work?
XML file is in the folder like it should be.
I have tested on a brand new logged in user with no change.
I’m deploying with SCCM 2012 R2 with MDT 2013 UP1 integrated.
I have tried to run the command both in a task sequecne and manually with the same results.
Hi,
Could it be that you are using CopyProfile=True in any of your Unattend.xml files?
If so it doesn’t work.
/Jörgen
Thanks for the great blog. I followed your blog and everything works fine, exept for the website shortcuts (.website file) I’ve added to the start menu. The icons get lost and a internet explorer icon is showed instead of the websites icon. Do you know a workaround to fix this issue?
I kept getting an error message like “Cannot find path” when executing Import-ImportStartLayout. It pointed to a nonexistent directory that had the same name as my scriptroot but added the text “Users” in the root name (ie. script folder being called c:\CustomStartScript and nonexistent folder being C:\CustomStartScriptUsers.
My solution was to programatically create the folder and add my custom LayoutModification.xml in it. Pasting my modifications below (praying it will turn out allright as comment):
Import-Module StartLayout
$LayoutPathRoot = “$(Get-Location)Users” # Define root of layout path to work around error message in Import-StartLayout
$LayoutPath = “$($LayoutPathRoot)\Default\AppData\Local\Microsoft\Windows\Shell” # Add folder structure to work around error message
if(!(Test-Path $LayoutPath)){New-Item $LayoutPath -ItemType Directory -Force} # Create folders.
Copy-Item “$($PSScriptRoot)\Internet Explorer.lnk” “$($env:ProgramData)\Microsoft\Windows\Start Menu\Programs\Accessories” -Force # Copy IE shortcut
Copy-Item “$($PSScriptRoot)\CustomLayout.xml” “$($LayoutPath)\LayoutModification.xml” # Copy xml to newly created folder
Copy-Item “$($PSScriptRoot)\CustomLayout.xml” “$($env:SystemDrive)\Users\Default\Appdata\Local\Microsoft\Windows\Shell\LayoutModification.xml” -Force # copy xml to default user profile
Import-StartLayout -LayoutPath “$($PSScriptRoot)\CustomLayout.xml” -MountPath “$($env:SystemDrive)” # Importing new start menu layout
Remove-Item $LayoutPathRoot -Recurse -Confirm:$false # Remove newly created folder.
Here’s a version without comments:
Import-Module StartLayout
$LayoutPathRoot = “$(Get-Location)Users”
$LayoutPath = “$($LayoutPathRoot)\Default\AppData\Local\Microsoft\Windows\Shell”
if(!(Test-Path $LayoutPath)){New-Item $LayoutPath -ItemType Directory -Force}
Copy-Item “$($PSScriptRoot)\Internet Explorer.lnk” “$($env:ProgramData)\Microsoft\Windows\Start Menu\Programs\Accessories” -Force
Copy-Item “$($PSScriptRoot)\CustomLayout.xml” “$($LayoutPath)\LayoutModification.xml”
Copy-Item “$($PSScriptRoot)\CustomLayout.xml” “$($env:SystemDrive)\Users\Default\Appdata\Local\Microsoft\Windows\Shell\LayoutModification.xml” -Force
Import-StartLayout -LayoutPath “$($PSScriptRoot)\CustomLayout.xml” -MountPath “$($env:SystemDrive)”
Remove-Item $LayoutPathRoot -Recurse -Confirm:$false
As a last note — I’m a little bit uncertain of any unwanted consequences with copying the xml to the default user path (Line 7) but it seems necessary (at least in Build 10586.318).
Hi there!
Can you tell me a little about how the Application IDs work? We’re installing some applications later in the MDT process but they aren’t coming up in the start menu after the image is finished deploying. (The menu had been captured from an existing machine with our image.)
Thanks very much for the post!
Hi Jörgen
How would this work with a Windows 10 InPlace Upgrade? At what stage does the script get executed? If it’s in the Post-Processing section and by chance a user has already logged on before this is executed… wouldn’t they get the default layout instead of the customized one?
Thanks
Paul
Is there a way to import a default start layout to an existing user?
Hi,
I would use a group policy and use the partial lockdown version, note that it will clear the users Start Menu.
/Jörgen
So this seems to work great, except I HAVE to have something in start menu hehe.
I want my user’s start menu to be empty and as small as possible but when I export an empty start menu it just exports an empty XML file which then fails when I try to import it.
Any ideas?
Hi Jörgen, thank you again for your support to all of us looking for solutions to our environment.
I have Windows 10 1511 enterprise. Trying hard to achieve two things:
1) Hide / Disable / remove windows Store app icon from Task bar (GPO from the latest ADMX file seems not to work
2) Removing / disabling Suggested Apps from Start menu: GPO Cloud experience doesnt seem to work, I am still getting facebook on my Start menu.
Any Idea on how to get rid of those two things:
Environment:
Windows 10 Enterprise (build 10586.164) 1511
Thank you in Advance.
Eden Oliveira
Actually ive not been able to make it work.
The only way ive been able to make this work is after importing the new layout, i had to delete/rename this folder: C:\Users\Default\AppData\Local\TileDataLayer
If you want to make your start layout thinner you can do so by editing the attribute in the LayoutModification.xml file.
http://joseespitia.com/2016/06/27/one-column-start-layout/
I hope this helps someone!
This worked great on SCCM but for the life of me i can not get this to work in MDT at all
Hi,
I have had many comments about it so I will write a log post, did you try changing the file permissions to administrator instead of system as we do in SCCM?
/Jörgen
Which version of iexplorer.exe did you shortcut: x86 or x64?
Thanks!
Please show an example of an internet webite .url pinned to the start menu in a subdirectory
All Microsoft examples indicate
“…you must create .url file (right-click on the Desktop, select New > Shortcut, and then type a Web URL). You must add this .url file in a legacy Start Menu directory before first boot; for example, “%APPDATA%\Microsoft\Windows\Start Menu\Programs\” or the all users profile “%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\”.
and create an entry like
”
This works but then I have a website link at the root of my Start menu.
If I try to move it to a sub folder/directory in the start menu, then it breaks.
The example MS gives seems as though it does not accommodate Start menu subfolders/directories. If this is the case then it is a very unsightly implementation.
Here’s hoping I’m wrong.
Seems like adding IE isn’t working with 1607 anymore.
I have this in Startmenu.xml… but IE isn’t showing up for other users.
I would love to see an update to this. It is still working for me, even after the 1607 anniversary update, but I really don’t like being force fed the entire app list in the start menu, and would love to find some method to completely hide or minimize the app list all together.
Hi Jörgen Nilsson,
Thanks for all your lessons on customizing Windows 10. I have used them all and would definitely like to mention that everything work. I modified your script to include ‘This PC’ and ‘User Files’ icons on desktop.
Do you mind adding the steps in making the package in SCCM for this?
Like a few others, I had issues where the IE shortcut would not appear on the Start Menu. I am not sure if it is because I am running the Enterprise Educational build (1607 Build 14393.0), or if there is something in our Win7 Group Policies that is causing the issue.
I tried the IE shortcut in the suggested %allusersprofile% various locations, Program Files (x86)\Internet Explorer Folder, and then moved to using the default user profile (referencing %appdata% in the xml layout file) so there would be no rights issues.
What finally worked for me was using a Pinned Site Shortcut (.website) link instead.
Launch IE. Set intranet webpage. Alt+T (Tools menu) -> Add site to Apps.
This created a shortcut to the webpage in %appdata%\Microsoft\Windows\Start Menu.
I renamed the shortcut to “Internet Explorer.website”
I then copied this file, and updated my xml file. I tested the .website shortcut in both the default user profile as well as the %allusersprofile% noted above.
The powershell script I am using via SCCM 2012R2 Task Sequence is:
Copy-Item -Path ‘Internet Explorer.website’ -Destination $env:SystemDrive’\ProgramData\Microsoft\Windows\Start Menu\Programs’
Import-StartLayout –LayoutPath LayoutModification.xml -MountPath $env:SystemDrive\
The edited line in the LayoutModification.xml file for me is:
There are two issues with this workaround: It specifies a default webpage to open on (which is not a big deal in my case, as we would set a default page via GPO anyway), and the icon winds up being the favico.ico from the website, not the IE icon.
To get around this – drag the .website file into notepad. I changed the IconFile line to IconFile=C:\ – with it missing a valid icon file caused it to shift to the default system icon. Double click it to launch it and update the icon.
I did try a number of ico and png files, but did not have success and eventually just ran out of time.
Not necessarily the most elegant solution, but…..
(Apologies – missed the LayoutModification.xml line):
This gets rid of the Edge icon
<!—->
Ok I seem to be stuck trying to get .URL files to appear on the start menu layout. First, I followed the steps in this article and I could get all Microsoft Office 2016 apps and IE11 shortcut to be pinned using the powershell script in a SCCM OSD task sequence. Next, I tried to have a Start Menu layout with Microsoft Office 2016 apps pinned, IE11 shortcut pinned and also URL’s to websites. After SCCM OSD I login and only see the Office 2016 and IE11 pinned. None of my .URL are there. I see the URL files are copied to successfully to c:\ProgramData\Microsoft\Windows\Start Menu\Programs. I can also see all my URL’s in Start > All Apps. I cannot figure out why the .URL does not show up in Start Menu
My Powershell script code:
Import-StartLayout -LayoutPath $PSScriptRoot\StartMenu.xml -MountPath $env:SystemDrive\
Copy-Item -Path $PSScriptRoot’\Internet Explorer.lnk’ -Destination $env:SystemDrive’\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories’
Copy-Item -Path $PSScriptRoot’\Website1.url’ -Destination $env:SystemDrive’\ProgramData\Microsoft\Windows\Start Menu\Programs’
Copy-Item -Path $PSScriptRoot’\Website2.url’ -Destination $env:SystemDrive’\ProgramData\Microsoft\Windows\Start Menu\Programs’
My StartMenu.xml code:
For those having issues removing the store icon through group policy I’ve tested and it works using the current ADMX files. You can also remove the Store app and other unnecessary apps
through powershell. For e.g.
Get-AppxPackage Microsoft.ConnectivityStore | Remove-AppxPackage
start-sleep -s 10
Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage
start-sleep -s 10
I put a sleep in the above because some apps take a little longer to uninstall (yes even on SSD). Please ensure that you reboot the workstation after uninstall is complete. I have a
powershell script that removes 15 apps successfully.
Hello All,
Strange thing happens here.
I install Win 10 1607 via SCCM 1606 OSD.
IE link is not missing if I install Win 10 on MS Hyper-V VM, but is
missing after installation on notebook.
MS Support Agent has no idea why this happens, because there are no
differences and all settings are applied on both machines are the same.
KR
Daniel
Hi Jorgen,
is there a way to import default bookmark into IE11 during OSD?
thanks,
CL
For people having issues with loading .uri files into the start menu you have to use the following line in the .xml file
the default output from export-startlayout command is wrong and you have to edit it like below to show DesktopApplicationID and instead of the file path you put the url of the .url file
In Windows 10 build 1607 it is possible to customize the start and taskbar layout in one xml file, but i cannot get it to work in my enviroment it gives an error when i want to import the startlayout xml, but i cannot find out what the problem is in the xml. Does anybody see what is wrong ?
Hi,
cannot see an attachment?
/J
Thank you very much Jorgen, I’ve made almost everything I wanted to work using your guide. Only thing I’m missing is Start Menu sizing. It seems no matter what I do the menu pops up at it’s default size. I try to shrink or extend it and then export the layout and it doesn’t catch.
Is there a way to determine the size of the start menu window?
For the life of me I cannot get the import to work.
PS C:\WINDOWS\system32> Import-StartLayout –LayoutPath c:\windows\temp\StartMenu.xml –MountPath $env:SystemDrive\
Import-StartLayout : Could not find a part of the path
‘C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml’.
At line:1 char:1
+ Import-StartLayout –LayoutPath c:\windows\temp\StartMenu.xml –MountPa …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Import-StartLayout], DirectoryNotFoundException
+ FullyQualifiedErrorId : System.IO.DirectoryNotFoundException,Microsoft.Windows.StartLayout.Commands.ImportStartL
ayoutCommand
Hello, thank you got help from this article at work today 🙂
Great explanation. Thanks a lot
Hi Jörgen,
Many thanks for taking the time out to post this – very helpful.
/Sean
Hi Jörgen,
Working fine here (1607 Enterprise). I’m only doing “local” testing with no domain/gpo at the moment and using MDT 2013 U2. I was wondering as I’ve seen the posts regarding the “partial lock” but although the layout is populated successfully for a new user, I don’t see the “lock” mechanism that I’ve read and seen in some other posts regarding this – so a user can remove an icon in the group. Does that feature only work with a group policy implementation or should it still be working as a standalone machine without gpo settings? Not really an issue at all but was interested if you had it working with a standalone machine.
I have the following in the file:
Plus the replace in the taskbar section:
Kind regards
/Sean
Hi All,
Running Window 10 Enterprise 1607 and using a GPO to customize the Start and Task menu
But when a user restarts or logs on then the changes that they made to their layout are lost.
I then modified the Layout.XML to include the tag to allow for modifications to stick but this does not allow the users to fully customize their layout. The start menu has ‘locks’ next to the applications. Changes to the task bar stick.
Is there a way the GPO can be used to set the customization in the first instance but then any changes the user makes are retained, both in the start menu and the task bar?
thanks,
DB
I did the whole procedure but it after importing with Import-StartLayout –LayoutPath C:\Windows\Temp\Startmenu.xml -MountPath $env:SystemDrive\ starting a new user did fetched the new startmenu I am on win10 1607 1393.447
please advice Jorgen?
I did the whole procedure but it after importing with Import-StartLayout –LayoutPath C:\Windows\Temp\Startmenu.xml -MountPath $env:SystemDrive\ starting a new user did NOT fetched the new startmenu
I am on win10 1607 1393.447
what I am doing wrong
kind regards Rob
Robbie I had issues with that myself where I was trying to call it from the image itself. I found out that the temp folder for me had to do with permission issues so it would keep failing. I ended up moving the StartMenu.xml to my deployment share and importing it with a powershell script having both in the same directory during my State Restore: “Import-StartLayout -LayoutPath $PSScriptRoot\StartMenu.xml -MountPath $env:SystemDrive\”
Have you had any success creating a custom folder on the machine, setting the shortcut to appear in the Programs list (Example: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\IT Tools) then pinning that through the XML file?
I’ve created the IT Tools folder then created a shortcut to the IT Tools folder in the Programs folder noted above and it shows up in the Program list when you click to the start menu but it won’t pin tot he Start Menu tile section… not sure if there’s any trick to that or if it’s just not possible to do.
Great article!
Is there a way to add internet shortcuts?
I have tried using a ps script where I copy the shortcut in the TS:
Copy-Item -Path $PSScriptRoot’\Supportportal.url’ -Destination $env:SystemDrive’\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories’
And then in the exported startlayout I have added:
But the shortcut isn’t pinned after the computer has been installed using mdt. But the rest of the startlayout looks good.
Thanks in advance,
Carl
I’m trying this with the Creators Update (1703). I’ve pinned Internet Explorer and several url shortcuts to the start menu, but I can’t get these specific pinned tiles to show up when new users sign in.
In the XML file exported through PowerShell, it does not list DesktopApplicationID for the Internet Explorer tile as mentioned in the original instructions. It is instead showing DesktopApplicationLinkPath=”%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk”
This Internet Explorer shortcut exists in each user’s %appdata% folder, but I’ve even followed the example to create a link in “%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk” and edited the XML file accordingly, but new users are still missing the Internet Explorer tile and all the URL shortcuts pinned to the Start Menu.
Hi,
The icon that already exists there for the users are created by an activesetup so that is to late that is why it must be copied there. The .xml file must also look like in the post otherwise it will not work..
Regards,
Jörgen
Hello, I’m getting access denied on c:\users\default\appdata\local\microsoft\windows\shell\layoutmodifications.xml no matter how I try to run this. Any suggestions?
Hi,
Are you running it elevated?
Regards,
Jörgen
You can put the taskbar layout in the xml file, although you have to do it by hand. Powershell doesn’t export it. But powershell can import it.
https://4sysops.com/archives/pin-apps-to-the-taskbar-in-windows-10-1607-with-group-policy/
Hey Jörgen how they lay out works great for me but how to I get it so it exports the settings for folders such as File explorer, documents, network, etc for the menu on the left side of the start menu in 1709? I not having any luck getting that part of the setting to apply. Any help would be appreciated.
Is there any way of making this work for existing users as well as keeping their existing customizations? Can’t use GPO so that users can still customize.
I’ve created a Task Sequence to upgrade Office from 2013 to 2016, but this is the only thing not working. The 2013 icons come off, but the 2016 icons do not appear as defined in the applied xml file, except for a new user logging on.
Hi Jörgen
Have you or any other followers been able to get this working with Windows 10 1709 + MDT (8443) ?
Hi,
we having problems with the IE link. Does anyone uses the OnlySpecifiedGroups in too and got it work? We deploy the xml with “OnlySpecifiedGroups” and the IE icon is not in the start menu. As soon we remove OnlySpecifiedGroups once – the IE icon is there and remains when we enable OnlySpecifiedGroups again. Any idea? Thanks in advance.
Jorgen, did you ever find out what to do about the IE link being deleted from Windows Accessories by a version upgrade?
Just found https://ccmexec.com/2016/05/making-the-ie-shortcut-survive-an-in-place-upgrade-in-windows-10/ but that uses a Task Sequence not Windows 10 Servicing Plans
Is there a way to adapt this for a taskbar pin?
PS. I couldn’t add a comment with my work email address it gave an error saying I needed to use a valid address. I had to use my gmail account instead. Thanks
Hello Jorgen,
Thank you for writing this article it worked great! I have a question if I may ask? How do I copy all of my desktop shortcuts over so everyone who logs on will have the same webpages and shortcuts?
thank you in advance. Steve H.
Hello Jorgen,
I need to have alternate tiles show for different regions.
I used the Tag and Append different sets of tiles per regions.
When I try to import the layout I receive “…not a valid layout file”. Is my header declarations incorrect?
Hi,
it is very picky about the format so most likely you have some formatting error in there, no easy way but to compare and use a good .xml editor.
Regards,
Jörgen
Hi Jorgen,
It looks liek MS gave us the similar issue with Teams. Itis installed in user context after start layout deployed. So it does not exist at the time of Start MAnu configuration and Teams icon is not present as the result.
I tried to copy a shortcut to c:\Program Files(x86)\Teams Installer folder and customized the shortcut to use variables instead of hardcoded path pointing to User’s APPDATA.
I packaged all this to an MSI and it successfully copy the shortcut. When I bring this shortcut to start I can start Teams just fine.
But when I do the same with Autopilot the Teams icon is still missing 🙁
I am wondering if you had a chance to get a Customize start layout XML working with Teams icon?
Hello Jörgen
Great Article and great Video that i bought in ViaMostra. Do you know if in the realease 1803 something has changed? I’ve try to configure and import a standard start layout and it worked but not totally.
Basically everything is ok apart the Windows APP that i left in the menu( ie: Sticky Notes, Calculator) where instead of the application icon i have a black hole.
I fix the issue reinstalling the apps for all users with the powershell command:
Get-AppxPackage -allusers | foreach {Add-AppxPackage -register “$($_.InstallLocation)\appxmanifest.xml” -DisableDevelopmentMode}
But i don’t understand where i’m wrong
This is a Domain Based workstation where a policy block the Windows Store. This can be the problem?
Basically i have lost all the tile related to the Windows App,
Hi,
That part has not changed, could it be that the removeapps prowershell skript uninstalled the app?