Windows 7 All Programs menu broken

glugglug

New Member
Joined
Jul 7, 2009
The "All Programs" menu off of the start menu isn't working any more, at least not when logged in as me (it works logged in as Administrator).

I think this is related to the fact that I move a lot of stuff off of my C: drive (SSD) onto the E: drive, with Junctions to make the paths from C: still work.

I moved \Users\glugglug\AppData\Local, \Users\glugglug\AppData\LocalLow, and \Users\glugglug\AppData\Roaming in this manner, as those directories are kind of big (especially Local), and have lots of files that get changed often, so they probably shouldn't be on the SSD.

After an apparently unclean restart (chkdsk ran when windows was coming back up) the All Programs menu stopped working and on further investigation I noticed that Windows replaced the LocalLow and Roaming junctions with real folders on the C: drive (and most of the files in them not there).

After copying the files from E: back to C:, and updating all references to E:\Users\glugglug\AppData\Roaming in the registry to point to C: again, the All Programs menu still isn't working. I can right click the all programs option and pick either "Open" or "Open All Users" and it opens the corresponding folders in explorer just fine but left clicking it doesn't pop up any menu, it just blanks out the left side of the start menu until I click back.

I have temporarily added "All Users Programs" and "My Programs" as shortcuts under the C:\Users\glugglug folder to have the menu again, but would like to get the normal "All Programs" menu back.
 
Moving those directories will not work,

The only luck I had with this was on a clean install, the very first thing I did, was to change the Environments Variable to the E:\Users directory.

Problem is, some software will still recreate the C:\users directory and save it's setting here.

It's basically a losing battle.
 
Have you tried using symbolic links? Have a look at this, Link Shell Extension (LSE). I also like to keep writes off my SSD, its really easy, you just move the folder to where you want and drop a symbolic link in its place.
 
What is the advantage of a symbolic link over a Junction?
Are they equivalent except one is for files the other for directories?
Oh, and I already use the Link Shell Extension, its awesome.

What is really stupid in this particular case is that if you go to properties on C:\Users\<username>\appdata\Roaming it has a location tab, to automatically move it, built into Windows 7. But attempting to move it in the GUI always fails because if you are logged in there will be files open in that directory. So in order to move it I had to log out, then log in as administrator, changing privileges so I could then move it to another drive & replace it with a Junction as admin (using the LSE to create junctions). So Microsoft has obviously thought about moving this folder in order for it to have a Location tab, yet moving it gives you problems after a crash.
 
Last edited:
Moving those directories will not work,
The only luck I had with this was on a clean install, the very first thing I did, was to change the Environments Variable to the E:\Users directory.

What "Environments Variable"?

Are you refering to the USERPROFILE environment variable?

And moving it worked for a month or so until the crash... Maybe because I replaced the old folders with junctions, so if an application used a path in C:\Users\glugglug\AppData\Roaming it would actually be accessing E:\Users\glugglug\AppData\Roaming because C:\Users\glugglug\AppData\Roaming was a junction.
 
[SIZE=-1] Heres a quote on the differences, I can tell you that symbolic links work for me.[/SIZE]

[SIZE=-1]Junctions are wormholes in the tree structure of a directed graph. By browsing a Junction a maybe far distant location in the file system is made available. Modifying, Creating, Renaming and Deleting files within a junction tree structure operates at the junction target, i.e. if you delete a file in a Junction it is deleted at the original location.[/SIZE]
[SIZE=-1] Symbolic Links are to files what Junctions are to folders in that they are both transparent and Symbolic. Transparency means that an application can access them just as they would any other file, Symbolism means that the data objects can reside on any available volume, i.e. they are not limited to a single volume like Hardlinks. Symbolic Links differ from Shortcuts in that they offer a transparent pathway to the desired data object, with a shortcut (.lnk), something has to read and interpret the content of the shortcut file and then open the file that it references (i.e. it is a two step process). When an application uses a symlink it gains immediate access to the data object referenced by the symlink (i.e. it is a one step process).[/SIZE]

There are some files/folders that you just cant move out of the appdata folder, like the credentials folder in Microsoft. But most of it can, especially your browser profiles. I have all my browser caches on a RAMdisk.
Move the TMP and the TEMP folders off the SSD too in the environment variable page.
The MSOCache folder in C: (if you have Office) can also be moved with sym links to free up some space.
Make sure you move the page file off it too. I turn mine off.

What is really stupid in this particular case is that if you go to properties on C:\Users\<username>\appdata\Roaming it has a location tab, to automatically move it, built into Windows 7.
Im still playing around with all this stuff too, I hadnt noticed there was this option. Thanks.
 
The descriptions I can find of Junctions sound sort of like hard-linked directories, which would imply they need to point within the same file system.

But I haven't found this to be the case in practice. I am able to create junctions pointing to other drives, both with the mklink command line and with the link shell extension, which has me wondering how they differ from symbolic links.

Some of the ones I'm using (there are many more):

Directory of C:\Documents and Settings\All Users

06/06/2009 11:20 PM <JUNCTION> Apple [E:\ProgramData\Apple]
06/06/2009 11:20 PM <JUNCTION> Apple Computer [E:\ProgramData\Apple Computer]
06/06/2009 11:21 PM <JUNCTION> Azureus [E:\ProgramData\Azureus]
06/06/2009 11:19 PM <JUNCTION> SnapStream [E:\ProgramData\SnapStream]
0 File(s) 0 bytes

Directory of C:\Documents and Settings\All Users\Microsoft\Windows

06/09/2009 08:36 PM <JUNCTION> WER [E:\Windows Error Reporting]
0 File(s) 0 bytes

Directory of C:\Documents and Settings\glugglug\AppData

06/06/2009 10:08 PM <JUNCTION> Local [E:\Users\glugglug\AppData\Local]
0 File(s) 0 bytes

Directory of C:\Program Files (x86)

06/06/2009 08:56 PM <JUNCTION> Google [E:\Program Files (x86)\Google]
06/06/2009 11:29 PM <JUNCTION> Nero [E:\Program Files (x86)\Nero]
0 File(s) 0 bytes

Directory of C:\ProgramData

06/06/2009 11:20 PM <JUNCTION> Apple [E:\ProgramData\Apple]
06/06/2009 11:20 PM <JUNCTION> Apple Computer [E:\ProgramData\Apple Computer]
06/06/2009 11:21 PM <JUNCTION> Azureus [E:\ProgramData\Azureus]
06/06/2009 11:19 PM <JUNCTION> SnapStream [E:\ProgramData\SnapStream]
0 File(s) 0 bytes

Directory of C:\ProgramData\Microsoft\Windows

06/09/2009 08:36 PM <JUNCTION> WER [E:\Windows Error Reporting]
0 File(s) 0 bytes


I had tried to do Program Files & Program Files (x86) & ProgramData this way but it broke windows updates and I ended up reinstalling.
 
Back
Top Bottom