Специальные папки. Перевод с Richard Siddaway's Blog

    краткий справочник констант специальных папок windows. must have повершельщика.

    Специальные папки

    Когда я программировал на VBScript я использовал «специальные папки», это папки типа «мои документы» и тому подобное, я использовал доступ через объект Shell.Application передавая в него константу нужной папки.

    тот же самый путь работает в PowerShell
    $a = New-Object -ComObject Shell.Application
    Get-ChildItem $a.NameSpace(0x21).Self.Path
    

    можно сократить до одной строки если вам так нравится больше:
    Get-ChildItem ( (New-Object -ComObject Shell.Application).Namespace(0x21).Self.Path)
    


    И если вам хочется наглядности то:
    $cookies = 0x21
    Get-ChildItem ( (New-Object -ComObject Shell.Application).Namespace($cookies).Self.Path)
    


    Это список специальных папок которые я сделал когдато для себя.
    $ie = 0x1            # Internet Explorer
    $progs = 0x2         # Programs
    $cp = 0x3            # Control Panel
    $printers = 0x4      # Printers and Faxes
    $mydocs = 0x5        # My Documents
    $favs = 0x6          # Favorites
    $startup = 0x7       # Startup
    $myrecdocs = 0x8     # My Recent Documents
    $sendto = 0x9        # SendTo
    $recycle = 0xa       # Recycle Bin
    $start = 0xb         # Start Menu
    $music = 0xd         # My Music
    $videos = 0xe        # My Videos
    $desktop = 0x10      # Desktop
    $mycomp = 0x11       # My Computer
    $mynet = 0x12        # My Network Places
    $nethood = 0x13      # NetHood
    $fonts = 0x14        # Fonts
    $templates = 0x15    # Templates
    $allsm = 0x16        # All Users Start Menu
    $allprogs = 0x17     # All Users Programs
    $allstart = 0x18     # All Users Startup
    $alldesk = 0x19      # All Users Desktop
    $appdata = 0x1a      # Application Data
    $printhood = 0x1b    # PrintHood
    $lsapps = 0x1c       # Local SettingsApplication Data
    $lstempie = 0x20     # Local Settings Temporary Internet Files
    $cookies = 0x21      # Cookies
    $lshist = 0x22       # Local SettingsHistory
    $allappdata = 0x23   # All Users Application Data
    $windows = 0x24      # Windows
    $system32 = 0x25     # System32
    $progfiles = 0x26    # Program Files
    $mypics = 0x27       # My Pictures
    $profile = 0x28      # User Profile
    $common = 0x2b       # Common Files
    $alltemplates = 0x2e # All Users Templates
    $admintools = 0x2f   # Administrative Tools
    $netconn = 0x31      # Network Connections
    


    оригинал статьи здесь:
    richardspowershellblog.wordpress.com/2008/03/20/special-folders

    Комментарии 5

      +2
      А ноги, думаю, растут из констант для некоторых WINAPI

      Заголовок спойлера
      #define CSIDL_DESKTOP   0
      #define CSIDL_INTERNET  1
      #define CSIDL_PROGRAMS  2
      #define CSIDL_CONTROLS  3
      #define CSIDL_PRINTERS  4
      #define CSIDL_PERSONAL  5
      #define CSIDL_FAVORITES 6
      #define CSIDL_STARTUP   7
      #define CSIDL_RECENT    8
      #define CSIDL_SENDTO    9
      #define CSIDL_BITBUCKET 10
      #define CSIDL_STARTMENU 11
      #define CSIDL_DESKTOPDIRECTORY  16
      #define CSIDL_DRIVES    17
      #define CSIDL_NETWORK   18
      #define CSIDL_NETHOOD   19
      #define CSIDL_FONTS 20
      #define CSIDL_TEMPLATES 21
      #define CSIDL_COMMON_STARTMENU  22
      #define CSIDL_COMMON_PROGRAMS   23
      #define CSIDL_COMMON_STARTUP    24
      #define CSIDL_COMMON_DESKTOPDIRECTORY   25
      #define CSIDL_APPDATA   26
      #define CSIDL_PRINTHOOD 27
      #define CSIDL_LOCAL_APPDATA 28
      #define CSIDL_ALTSTARTUP    29
      #define CSIDL_COMMON_ALTSTARTUP 30
      #define CSIDL_COMMON_FAVORITES  31
      #define CSIDL_INTERNET_CACHE   32
      #define CSIDL_COOKIES   33
      #define CSIDL_HISTORY   34
      #define CSIDL_COMMON_APPDATA    35
      #define CSIDL_WINDOWS   36
      #define CSIDL_SYSTEM    37
      #define CSIDL_PROGRAM_FILES 38
      #define CSIDL_MYPICTURES    39
      #define CSIDL_PROFILE   40
      #define CSIDL_SYSTEMX86 41
      #define CSIDL_PROGRAM_FILESX86  42
      #define CSIDL_PROGRAM_FILES_COMMON  43
      #define CSIDL_PROGRAM_FILES_COMMONX86   44
      #define CSIDL_COMMON_TEMPLATES  45
      #define CSIDL_COMMON_DOCUMENTS  46
      #define CSIDL_COMMON_ADMINTOOLS 47
      #define CSIDL_ADMINTOOLS    48
      #define CSIDL_CONNECTIONS   49
      #define CSIDL_COMMON_MUSIC  53
      #define CSIDL_COMMON_PICTURES   54
      #define CSIDL_COMMON_VIDEO  55
      #define CSIDL_RESOURCES 56
      #define CSIDL_RESOURCES_LOCALIZED   57
      #define CSIDL_COMMON_OEM_LINKS  58
      #define CSIDL_CDBURN_AREA   59
      #define CSIDL_COMPUTERSNEARME   61

        +1
        и правда совпадает
        0
        Спасибо! Для полного счастья подскажите, пожалуйста:

        $allsm = 0x16 # All Users Start Menu
        и
        $start = 0xb # Start Menu


        $allstart = 0x18 # All Users Startup
        и
        $startup = 0x7 # Startup

        … кто из них Автозагрузка?
          +1
          пожалуйста

          $allsm = 0x16 # All Users Start Menu
          Directory: C:\ProgramData\Microsoft\Windows\Start Menu
          
          $start = 0xb # Start Menu
          Directory: C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu
          
          $allstart = 0x18 # All Users Startup
          Directory: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
          
          $startup = 0x7 # Startup
           Directory: C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
          0
          Через .NET более наглядно:

          [Environment]::GetFolderPath([System.Environment+SpecialFolder]::UserProfile)

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое