Enumerate Shell Folders in Win 7

Shell Folders have different names and meanings in Windows 7.

I have modified the original script so that you can list the folders and their names.Run this script using cscript and not wscript.

Set shellApp = CreateObject("Shell.Application")
Set CSIDL_VALUES = CreateObject("Scripting.Dictionary")
CSIDL_VALUES.Add "CSIDL_ADMINTOOLS", &H30
CSIDL_VALUES.Add "CSIDL_ALTSTARTUP", &H1D
CSIDL_VALUES.Add "CSIDL_APPDATA", &H1A
CSIDL_VALUES.Add "CSIDL_BITBUCKET", &HA
CSIDL_VALUES.Add "CSIDL_CDBURN_AREA", &H3B
CSIDL_VALUES.Add "CSIDL_COMMON_ADMINTOOLS", &H2F
CSIDL_VALUES.Add "CSIDL_COMMON_ALTSTARTUP", &H1E
CSIDL_VALUES.Add "CSIDL_COMMON_APPDATA", &H23
CSIDL_VALUES.Add "CSIDL_COMMON_DESKTOPDIRECTORY", &H19
CSIDL_VALUES.Add "CSIDL_COMMON_DOCUMENTS", &H2E
CSIDL_VALUES.Add "CSIDL_COMMON_FAVORITES", &H1F
CSIDL_VALUES.Add "CSIDL_COMMON_MUSIC", &H35
CSIDL_VALUES.Add "CSIDL_COMMON_OEM_LINKS", &H3A
CSIDL_VALUES.Add "CSIDL_COMMON_PICTURES", &H36
CSIDL_VALUES.Add "CSIDL_COMMON_PROGRAMS", &H17
CSIDL_VALUES.Add "CSIDL_COMMON_STARTMENU", &H16
CSIDL_VALUES.Add "CSIDL_COMMON_STARTUP", &H18
CSIDL_VALUES.Add "CSIDL_COMMON_TEMPLATES", &H2D
CSIDL_VALUES.Add "CSIDL_COMMON_VIDEO", &H37
CSIDL_VALUES.Add "CSIDL_COMPUTERSNEARME", &H3D
CSIDL_VALUES.Add "CSIDL_CONNECTIONS", &H31
CSIDL_VALUES.Add "CSIDL_CONTROLS", &H3
CSIDL_VALUES.Add "CSIDL_COOKIES", &H21
CSIDL_VALUES.Add "CSIDL_DESKTOP", &H0
CSIDL_VALUES.Add "CSIDL_DESKTOPDIRECTORY", &H10
CSIDL_VALUES.Add "CSIDL_DRIVES", &H11
CSIDL_VALUES.Add "CSIDL_FAVORITES", &H6
CSIDL_VALUES.Add "CSIDL_FLAG_CREATE", &H8000
CSIDL_VALUES.Add "CSIDL_FLAG_DONT_VERIFY", &H4000
CSIDL_VALUES.Add "CSIDL_FLAG_MASK", &HFF00
CSIDL_VALUES.Add "CSIDL_FLAG_NO_ALIAS", &H1000
CSIDL_VALUES.Add "CSIDL_FLAG_PER_USER_INIT", &H800
CSIDL_VALUES.Add "CSIDL_FONTS", &H14
CSIDL_VALUES.Add "CSIDL_HISTORY", &H22
CSIDL_VALUES.Add "CSIDL_INTERNET", &H1
CSIDL_VALUES.Add "CSIDL_INTERNET_CACHE", &H20
CSIDL_VALUES.Add "CSIDL_LOCAL_APPDATA", &H1C
CSIDL_VALUES.Add "CSIDL_MYDOCUMENTS", &HC
CSIDL_VALUES.Add "CSIDL_MYMUSIC", &HD
CSIDL_VALUES.Add "CSIDL_MYPICTURES", &H27
CSIDL_VALUES.Add "CSIDL_MYVIDEO", &HE
CSIDL_VALUES.Add "CSIDL_NETHOOD", &H13
CSIDL_VALUES.Add "CSIDL_NETWORK", &H12
CSIDL_VALUES.Add "CSIDL_PERSONAL", &H5
CSIDL_VALUES.Add "CSIDL_PRINTERS", &H4
CSIDL_VALUES.Add "CSIDL_PRINTHOOD", &H1B
CSIDL_VALUES.Add "CSIDL_PROFILE", &H28
CSIDL_VALUES.Add "CSIDL_PROGRAM_FILES", &H26
CSIDL_VALUES.Add "CSIDL_PROGRAM_FILES_COMMON", &H2B
CSIDL_VALUES.Add "CSIDL_PROGRAM_FILES_COMMONX86", &H2C
CSIDL_VALUES.Add "CSIDL_PROGRAM_FILESX86", &H2A
CSIDL_VALUES.Add "CSIDL_PROGRAMS", &H2
CSIDL_VALUES.Add "CSIDL_RECENT", &H8
CSIDL_VALUES.Add "CSIDL_RESOURCES", &H38
CSIDL_VALUES.Add "CSIDL_RESOURCES_LOCALIZED", &H39
CSIDL_VALUES.Add "CSIDL_SENDTO", &H9
CSIDL_VALUES.Add "CSIDL_STARTMENU", &HB
CSIDL_VALUES.Add "CSIDL_STARTUP", &H7
CSIDL_VALUES.Add "CSIDL_SYSTEM", &H25
CSIDL_VALUES.Add "CSIDL_SYSTEMX86", &H29
CSIDL_VALUES.Add "CSIDL_TEMPLATES", &H15
CSIDL_VALUES.Add "CSIDL_WINDOWS", &H24

For Each key In CSIDL_VALUES.Keys
value = "*** not available ***"
On Error Resume Next
value = shellApp.Namespace(CSIDL_VALUES.Item(key)).Self.Path
On Error GoTo 0
wscript.echo key & " &H" & hex(CSIDL_VALUES.Item(key)) & " value: " & value
' WSCript.Echo key & " value: " & value
Next