For those of you trying out deploying Windows Developer Preview via MDT or SCCM (a.k.a. Windows 8) one big annoyance may the Start Menu layout. If you have any applications installed into your image you will find a new user logs on they will not get the shortcuts in their Start Menu (among other things)
Although this is all subject to change, and we will see much more customization ability in the beta with the Start Menu, for now it is still simple to customize.
Because I couldn’t find any existing documentation on how Windows configured the layout of the Start Menu screen I went to process monitor. (http://live.sysinternals.com/procmon.exe )
The Start Menu runs in the explorer.exe process, but explorer.exe is always generating so many events it can sometimes be hard to find a setting. So my approach was to use a standard filter I use when I need to identify user settings changed by explorer.exe (or any per-user application/OS setting). I included the following items:
- Operation is CreateFile
- Operation is RegSetValue
- Path begins with HKCU\Software\Microsoft
- Path begins with %USERPROFILE%\APPDATA (In this case C:\users\eatredmeatfeelgood\appdata)
I then went and re-arranged some items on my Start Menu. ProcMon quickly showed me the way. I noticed the following files getting written to each time I updated the Start Menu.
To test the theory I then copied the file
%APPDATA%\Microsoft\Windows\appsFolder.itemdata-ms to the C:\Users\Default\Microsoft\Windows folder. I then logged onto the machine with a new user account and voila – we have customized Start Menu.
Before I applied my customization users would get a screen that looked like this:
Before customization the Start Screen looked like this for all users logging in:
After customization a new user logging in now receives this layout:
As a final random thought:
Use DISM built into Windows Developer Preview or from the Windows ADK and you can add/remove your AppX (Metro Apps) packages to offline images. Very cool!
dism [/online or /image=mounted wim path] /Get-ProvisionedAppxPackages
dism [/online or /image=mounted wim path] /Add-ProvisionedAppxPackage
dism [/online or /image=mounted wim path] /Remove-ProvisionedAppxPackage