 <p>If you don't mind a little Win32, you can use <a href="http://msdn.microsoft.com/en-us/library/bb762204.aspx" rel="nofollow noreferrer"><code>SHGetSpecialFolderPath</code></a>.</p> <pre><code>[DllImport("shell32.dll")] static extern bool SHGetSpecialFolderPath(IntPtr hwndOwner, StringBuilder lpszPath, CSIDL nFolder, bool fCreate); enum CSIDL { COMMON_STARTMENU = 0x0016, COMMON_PROGRAMS = 0x0017 } static void Main(string[] args) { StringBuilder allUsersStartMenu = new StringBuilder(255); SHGetSpecialFolderPath(IntPtr.Zero, allUsersStartMenu, CSIDL.COMMON_PROGRAMS, false); Console.WriteLine("All Users' Start Menu is in {0}", allUsersStartMenu.ToString()); } </code></pre>