Jump to content


anyweb

How can I deploy a customized Windows 10 start menu using System Center 2012 R2 SP1 Configuration Manager ?

Recommended Posts

Introduction

In previous posts I showed you how you can upgrade to System Center 2012 R2 SP1 Configuration Manager and how to Deploy Windows 10 x64 Enterprise. In this post I'll explain how you can customize the Windows 10 start menu for use during a task sequence deployment using an MDT 2013 update 1 integrated task sequence. You could use active directory Group Policy (Administrative Templates\Start Menu and Taskbar\Start Menu Layout) or other methods to do this however this method works very nicely and is easy to implement. I'll cover customizing the taskbar in a separate post.

 

Note: I've noticed that Internet Explorer doesn't show up even though pinned to start. Perhaps it's a way of discouraging usage of same in favor of Microsoft Edge.

 

Step 1. Review a standard Windows 10 start menu

Using a Windows 10 virtual machine that was previously built (with apps you intend to use in your organization), log in and review the start menu before any customization's are performed. In the screenshot below there are three columns in the start menu. The left column is where Windows informs you about things it thinks you should know such as recently installed applications or most used apps. In addition you have some standard actions available. The second and third columns contain tiles (boxes) which can be live or not. Live tiles update themselves with (for example) photos, or news snippets depending on the application. Tiles can be resized as

  • small
  • medium
  • wide
  • large

but those resize options can vary depending on what type of tile it is. In addition to the columns there group names so that you can group tiles of similar nature together (for example Microsoft Office) and give them an appropriate group name (Office 365).

 

menu before customization.png

 

Step 2. Customize the Windows 10 start menu

Now that you have familiarized yourself with the Windows 10 start menu it's time to make it look the way you want but before you do understand what is allowed or not.

 

On Windows 10 for desktop editions, the customized Start works by:

  • The OS performs level checks to determine the chosen base default layout, such as the desktop edition and whether Cortana is supported for the country/region.

  • The OS reads the LayoutModification.xml file and only allows groups to be appended to Start. The groups have the following constraints:

    • 2 groups that are 6 columns wide, or equivalent to the width of 3 medium tiles.
    • 2 medium-sized tile rows in height. The OS ignores any tiles that are pinned beyond the second row.
    • No limit to the number of apps that can be pinned. There is a theoretical limit of 24 tiles per group (4 small tiles per medium square x 3 columns x 2 rows).

Remove some tiles

To customize the start menu, logon as a user with administrative credentials on that machine. You can begin by removing any tiles that you do not want appearing in the finished menu. To do that, right click on a tile you want to remove and choose Unpin from Start. Repeat as necessary until you've removed all the tiles you do not want to appear in your finished start menu.

 

unpin from start.png

 

After removing a bunch of tiles your start menu can look totally empty or at least different to the way it looked in the beginning. In my screenshot below I've removed all tiles from the start menu so it is effectively a blank slate.

 

blank menu.png

 

Add some Tiles

Next, it's time to add back some colour to your start menu, start with a bunch of apps you'll be using in your organization and try and group the tiles in a way that you think your users will use often.

 

To add a tile, click on All Apps in the bottom left corner to see all the applications installed on this computer. Keep in mind that you need to install whatever apps you intend to offer in your organization prior to this customization.

 

all apps.png

 

In the list of applications browse to the group that interests you and select an app, right click the app and choose Pin to Start.

 

pin to start.png

 

Once done, the application will appear in it's own tile in the first available column.

 

tile added.png

 

Repeat as necessary adding a bunch of apps that you want made into a group.

 

tiles added to group.png

 

Reposition tiles

Next grab a tile (by selecting a tile, left clicking and holding the mouse button down) that you want to move and move it to the location you want it to appear, when happy, release the mouse button.

 

reposition tiles.png

 

Resize tiles

Once you are happy with the order you might want to resize one or more tiles, to do so, right click a tile and choose from the sizes available. Repeat as necessary.

 

resize tile.png

 

Name groups of tiles

Now that you've created a group of tiles, give the group a name. To name a group simply point the mouse cursor to the top of a group of tiles and Name Group (or a previous group name) will appear, click anywhere in the text to enter in a new group name.

 

name group.png

 

After naming a group, you can see the results immediately.

 

office 365 group.png

 

And after you are done customizing the start menu you can review your work. Awesome.

 

the customized start menu two column.png

 

Step 3. Export the custom menu using PowerShell

Now you are ready to capture the customizations using PowerShell. To do so fire up an Administrative cmd prompt and type the following command to store our custom xml files.

mkdir C:\Temp

mkdir c temp.png

 

Next we need to start PowerShell, do so by typing the following command

powershell

powershell.png

 

At the PowerShell cmd prompt, type the following

Export-StartLayout -Path C:\Temp\LayoutModification.xml

exportstartlayout.png

 

Tip: If you get access denied errors, make sure you are logged in as a user with Administrative permissions on the computer (not just an administrative command prompt), or specify a folder that you have appropriate access to.

 

Step 4. Copy the XML file to ConfigMgr sources

Using an account that has permissions adequate to write a file to your Configmgr sources structure, on the Windows 10 machine with the custom start menu browse to the C:\Temp folder, select the LayoutModification.xml file and choose copy.

 

copy to source.png

 

Paste the file into your ConfigMgr sources into a suitably named folder structure (eg: \\sccm\sources\os\Windows 10\Start Menu) such as below

 

copied to sccm.png

 

Step 5. Download a PowerShell script

Download the following PowerShell script (in a ZIP archive)

 

ApplyCustomMenu.zip

 

extract it and copy the extracted script into the folder structure created above.

copy the extracted script.png

 

Step 6. Create a Package

To deploy the changes to new Windows 10 machines during OSD, you need to make the file above available via a package. In the Configuration Manager console, select software library then applications and right click on Packages. Choose Create Package.

 

create package.png

 

give the package a suitable name such as Windows 10 start screen customizations and point the data source to the folder where you copied the xml file above

 

package details.png

 

Choose Do not create a program and continue through the rest of the wizard until completion.

 

package created.png

 

Step 7. Distribute the package

To distribute this package right click and choose Distribute Content this will make the content available to computers being imaged from selected distribution points.

 

distribute content.png

 

On the content destination screen, click add then select any distribution points you want to make this available to.

 

add distribution points.png

 

continue through the wizard until completion.

 

Step 8. Edit a Deploy Windows 10 task sequence

In a previous post you learned how to deploy Windows 10, in this guide you will edit that task sequence to include the custom start menu. In the Configuration Manager console browse to Software Library, Operating Systems and select Task Sequences, locate your Windows 10 task sequence, right click it and choose edit.

edit task sequence.png

 

Scroll down to a section that occurs after Set Status 4, select Add, select New Group and give it a name like Windows 10 Start Screen Customizations.

 

after set status 4.png

 

Next select the Add dropdown, select General and choose Run Command Line, paste in the following command.

cmd.exe /c copy LayoutModification.xml C:\Windows\Temp  & %deployroot%\tools\x64\ServiceUI.exe -process:TSProgressUI.exe %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe  -NoProfile -ExecutionPolicy bypass -File "ApplyCustomMenu.ps1"

give the step a suitable name like Import Customized start menu

 

and make sure to select the previously created W‌indows 10 Start Screen customizations package so that it can reference the content correctly as shown here

 

import customized start menu step.png

 

Apply the changes and close the task sequence editor.

 

Step 9. Deploy a new Windows 10 machine

To review the changes, deploy a new Windows 10 computer

 

osd in progress.png

 

Once it is complete, logon and you'll see the customized start menu in action. Job done ! Yes I know the Internet Explorer icon is missing, see the note at the top of the page.

 

start menu done.png

 

Note that the customized xml file above is copied to the default profile path listed below:

C:\Users\Default\AppData\Local\Microsoft\Windows\Shell

Remember that your newly deployed Windows 10 machines start menu will only show pinned tiles that are installed.

 

Recommended Reading

Well that's all, until next time,

 

cheers

niall

  • Like 1

Share this post


Link to post
Share on other sites

Seems a bit more complicated than needed (the serviceui part). From memory IE shortcut is missing because it's created for that user during login.

 

 

1. Copy the shortcut to ProgramData\Microsoft\Windows\Start Menu\Programs then pin it.

2. copy that shortcut to your startlayout package.

3. In the start layout package have a powershell script:

Copy-Item '.\Internet Explorer.lnk' -Destination "$env:ProgramData\Microsoft\Windows\Start Menu\Programs"
Import-StartLayout -LayoutPath .\Startlayout.xml -MountPath $env:SystemDrive\
4. In task sequence use 'Run powershell script' with setting bypass and reference your package.

Share this post


Link to post
Share on other sites

Good writeup.

I have just deployed this last week but with a far simpler script - you only need to copy the LayoutModification.xml to the defult profile

copy /y "%~dp0LayoutModification.xml" "C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml"

Havent had any issues with this method - give it a try!

 

 

*whoops, i see you mentioned the path - does the longer command do anything additional?

  • Like 1

Share this post


Link to post
Share on other sites

Hi Niall

 

Great post as usual. So how does this differ to using the Windows Imaging and Configuration Designer supplied in the ADK10? Is this not a tool we should be using to for this purpose now?

 

Thanks

Con

 

hi Con

I havn't tried it using the ICD yet, if i do and if i see a need i'll post an update here

 

cheers

niall

Share this post


Link to post
Share on other sites

Good writeup.

I have just deployed this last week but with a far simpler script - you only need to copy the LayoutModification.xml to the defult profile

copy /y "%~dp0LayoutModification.xml" "C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml"

Havent had any issues with this method - give it a try!

 

 

*whoops, i see you mentioned the path - does the longer command do anything additional?

 

hi

yes it just copies the file, however the script does use the 'proper' powershell cmdlet for doing so, so in that respect you could say it's supported, but it's entirely up to you which way to use :)

Share this post


Link to post
Share on other sites

 

Seems a bit more complicated than needed (the serviceui part). From memory IE shortcut is missing because it's created for that user during login.

 

 

1. Copy the shortcut to ProgramData\Microsoft\Windows\Start Menu\Programs then pin it.

2. copy that shortcut to your startlayout package.

3. In the start layout package have a powershell script:

Copy-Item '.\Internet Explorer.lnk' -Destination "$env:ProgramData\Microsoft\Windows\Start Menu\Programs"
Import-StartLayout -LayoutPath .\Startlayout.xml -MountPath $env:SystemDrive\
4. In task sequence use 'Run powershell script' with setting bypass and reference your package.

 

 

I just reused a previous serviceUI.exe step so yes if you want to call it overly complex, you can, and yes it can be simplified, however, it does work and that's the point :-) I'll take a look at the IE shortcut suggestions,

 

cheers

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.