Search notes:

System.Environment+SpecialFolder (enum)

The values of the System.Environment+SpecialFolder enum can be used in the method namespace in shell.automation.

Querying the values of SpecialFolder in PowerShell

[System.Enum]::GetValues('System.Environment+SpecialFolder') | foreach-object  {
  '{0,2} {1,-30} {2}' -f $_.value__, $_.ToString(), [Environment]::GetFolderPath($_)
}
Comment
0 Desktop C:\Users\Rene\Desktop Note: the Desktop special folder is not the same thing as the Desktop virtual folder (the latter being the Windows Shell namespace).
2 Programs C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
5 MyDocuments C:\Users\Rene\Documents appears twice in code snippet above. The MyDocuments special folder is different from the MyDocument virtual folder which appears under the Desktop virtual folder in the Windows Shell namespace. Personal seems to be an alias(?) for MyDocuments.
6 Favorites C:\Users\Rene\Favorites
7 Startup C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
8 Recent C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Recent
9 SendTo C:\Users\Rene\AppData\Roaming\Microsoft\Windows\SendTo
11 StartMenu C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Start Menu
13 MyMusic C:\Users\Rene\Music
14 MyVideos C:\Users\Rene\Videos
16 DesktopDirectory C:\Users\Rene\Desktop
17 MyComputer
19 NetworkShortcuts C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Network Shortcuts
20 Fonts C:\Windows\Fonts
21 Templates C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Templates
22 CommonStartMenu C:\ProgramData\Microsoft\Windows\Start Menu
23 CommonPrograms C:\ProgramData\Microsoft\Windows\Start Menu\Programs
24 CommonStartup C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
25 CommonDesktopDirectory C:\Users\Public\Desktop
26 ApplicationData C:\Users\Rene\AppData\Roaming
27 PrinterShortcuts C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
28 LocalApplicationData C:\Users\Rene\AppData\Local
32 InternetCache C:\Users\Rene\AppData\Local\Microsoft\Windows\INetCache
33 Cookies C:\Users\Rene\AppData\Local\Microsoft\Windows\INetCookies
34 History C:\Users\Rene\AppData\Local\Microsoft\Windows\History
35 CommonApplicationData C:\ProgramData
36 Windows C:\Windows
37 System C:\Windows\system32
38 ProgramFiles C:\Program Files
39 MyPictures C:\Users\Rene\Pictures
40 UserProfile C:\Users\Rene
41 SystemX86 C:\Windows\SysWOW64
42 ProgramFilesX86 C:\Program Files (x86)
43 CommonProgramFiles C:\Program Files\Common Files
44 CommonProgramFilesX86 C:\Program Files (x86)\Common Files
45 CommonTemplates C:\ProgramData\Microsoft\Windows\Templates
46 CommonDocuments C:\Users\Public\Documents
47 CommonAdminTools C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
48 AdminTools C:\Users\Rene\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools
53 CommonMusic C:\Users\Public\Music
54 CommonPictures C:\Users\Public\Pictures
55 CommonVideos C:\Users\Public\Videos
56 Resources C:\Windows\resources
57 LocalizedResources
58 CommonOemLinks
59 CDBurning C:\Users\Rene\AppData\Local\Microsoft\Windows\Burn\Burn ? Burn\Burn ?

Querying for a specific value in PowerShell

In PowerShell, the path for a specific value, such as UserProfile, can be queried using the GetFolderPath() method of System.Environment:
PS C:\> [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::UserProfile)
C:\Users\Rene

See also

It seems that some of the values of the SpecialFolder enumeration seem can be modified in the registry under HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders.
Windows: known folders

Index