As of Windows 2000 and XP, it's possible to set up separate shells for each profile without using a shell manager. However, shell managers continue to provide an enhanced interface and advanced features like choosing your shell at bootup, and they are still the easiest way to configure multiple shells. We used to recommend shellOn
, Carapace, Snafkin
or ShellS
. These have been disappearing slowly, so if you find a link is down, please report it ... we were able to procure the source and distribution rights for ShellS
, so we'll make sure at least that one stays around
...
Native per-profile shells
 | ShellS makes it easy! You should consider using ShellS to set you shell, it features the ability to set your shell "per user" or "per machine" and doesn't require running every time you log in (unlike the ones listed above). |
 | Setting a shell per profile this way is not as easy, and requires Editing the Registry by hand, so follow these steps carefully, and please BACKUP your registry first! |
- Navigate in your registry to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ini File Mapping\system.ini\boot
- change Shell = SYS:Microsoft\Windows NT\CurrentVersion\Winlogon to Shell = USR:Software\Microsoft\Windows NT\CurrentVersion\Winlogon - This basically means that windows is supposed to look at the CurrentUser key to see what shell is supposed to be running, before it looks at the LocalMachine key.
- Now navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
- create a string value: Shell = Explorer.exe (This is the default shell, which will be used for profiles which don't specify their own shell)
- Logon to the profiles where you do not want the default shell to load. (make sure you can edit the registry: Poweruser status should be enough)
- Navigate to HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
- Add or change Shell = C:\geoshell directory\Geoshell.exe Using the path to GeoShell.exe on your system. This will be the shell that's loaded by windows whenever you use this profile.
I followed the instructions above on my Windows 2000 SP4 system.
Just as a test, I copied explorer.exe to explorer2.exe.
I then set HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell=explorer2.exe
I expect that, since I'm using an exact copy of explorer.exe as the shell, everything should still look the same. However, when I start up the computer, no start menu, taskbar, etc. appears. It seems that I'm not using anything as a shell. Any ideas why this wouldn't work or how to go about troubleshooting it? I didn't notice anything out of the ordinary in the Event Log. Thanks.