Установить пользовательский значок папки для сетевой папки в проводнике Windows

Установить пользовательский значок папки для сетевой папки в проводнике Windows

Я получаю доступ к общему ресурсу Windows и'значок папки' раздел (нижний) отсутствуетв его настройках. Он отображается правильно в локальных папках. Я хотел бы иметь его в обоих.

Окно свойств папки с выделенным параметром значка

Окно свойств локальной папки

решение1

Вам нужно будет использовать файл desktop.ini для настройки значка. Обычно это все, что вы делаете, когда используете кнопку "Изменить значок" выше. Полную документацию см.:Как настроить папки с помощью desktop.ini Ниже приведен пример файла desktop.ini:

[DeleteOnCopy]
Owner=MyUser
Personalized=13
PersonalizedName=My Folder
[.ShellClassInfo]
[email protected],-12689
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-237

Кстати, если вы хотите сделать это без необходимости вручную создавать desktop.ini, вы можете создать папку локально, применить нужные настройки и украсть ее desktop.ini. (Если вы его не видите, скопируйте всю папку; изначально у нее должно быть правильное имя.) Видео на YouTubeПрименить значок к папке на сетевом дискедемонстрирует этот процесс, но использует перемещение папок вместо создания новой папки.

решение2

Прошло много времени с тех пор, как я видел столько быков :)

  1. Щелкните правой кнопкой мыши -> Свойства -> Настроить -> Изменить значок — эта опция недоступна для общих папок SMB.

  2. ... ---> Изменение изображения не имеет никакого эффекта.

  3. Desktop.ini НЕ обрабатывается Windows для общих ресурсов SMB, поскольку Linux по-другому интерпретирует бит «Только для чтения» (папки) и неправильно возвращает его Windows:

    • В Linux «Только чтение» означает «Только чтение»!
    • В Windows «Только чтение» (только для папок) означает процесс Desktop.ini!!!
  4. Предполагается, что существует параметр реестра, который принудительно обрабатывает Desktop.ini, используя флаг «Система» (сверхскрытый) вместо «Только чтение», но мне так и не удалось заставить его работать так, как ожидалось.

  5. Отсутствие обработки desktop.ini на SMB ломает много других вещей, не только значки папок: символические ссылки и персонализированные пространства имен также не работают. Бездельники из Microsoft просто отказываются иметь с этим дело, начиная с Windows NT.

  6. Конечно, всегда можно создать косвенные ссылки для доступа к папкам SMB и вместо этого предоставить эти пользовательские значки, но это вызывает множество других проблем:

    • Ссылки на ярлыки оцениваются и кэшируются по умолчанию в Windows при открытии родительской папки, что приводит к «огромным» задержкам в проводнике, если папка содержит ярлыки на медленные или спящие сетевые ресурсы.
    • Ярлыки в Windows абсолютны, а не относительны, следовательно, не переносимы. Это создает много проблем с обслуживанием, если целевой корневой путь изменится. Windows также имеет привычку автоматически преобразовывать переменные окружения в абсолютные ссылки, сводя на нет любые попытки обойти это.
    • Их глупый сервис «Распределенный клиент отслеживания ссылок» еще больше все портит.
  7. Лучший способ реализовать относительные ссылки в Windows — использовать скрипт VBS. В нативной (текстовой) форме скрипт VBS не будет иметь пользовательского значка, но вы можете назначить пользовательский значок EXE-файлу, если скомпилируете его.

Однако это требует много работы, и скрипт будет создавать предупреждающие сообщения о «ненадежности» каждый раз, когда вы запускаете его из сети, если только скрипт не является локальным или вы не найдете способ его подписать.

VBS Relative Link example:
============================
'  This is a VB Script, which emulates a RELATIVE file link/shortcut in Win XP
'
'  1) The first  line declares an untyped variable      ==> objshell
'
'  2) The second line instantiates a new object derived from    ==> Shell.Application
'
'  3) The third  line invokes the object's method       ==> ShellExecute
'
'     with the following parametters:   "target path"
'                                       "target's arguments"
'                   "starting directory"
'                   "action verb"
'                                       Initial window mode:  0 = Hidden Window
'                                                             1 = Normal Window
'                                                             2 = Minimized
'                                                             3 = Maximized
'                                                             4 = Most recent size and position, keep active window active
'                                                             5 = Current size and position
'                                                             6 = 
'                                                             7 = Minimized, keep active window active
'                                10 = Default state specified by target application
'
'  4) The last line frees/destroys the shell object
'
'
dim objShell
set objShell = CreateObject("Shell.Application")
objShell.ShellExecute                                 _
  "..\..\..\SomePath_Three_Dirs_UP_etc"              ,_
  ""                                                 ,_
  ""                                                 ,_
  "open"                                             ,_
  1
set objShell = nothing
===============================================================

решение3

Метод настройки, описанный ssnobody, предполагает, что у вас есть возможность изменить папку на удаленной машине,ичто вы хотите, чтобы внешний вид папки был изменен для всех удаленных и локальных пользователей. Если ни одно из этих условий не верно, вы можете использовать эту альтернативу: создать локальный ярлык для удаленной папки (например, щелкнуть правой кнопкой мыши, перетащить его на локальный рабочий стол и выбрать «создать ярлык»), а затем использовать обычную кнопку «изменить значок» диалогового окна свойств, чтобы изменить значок ярлыка.

решение4

Обойти эту проблему можно, переименовав файл изображения в «folder.jpg» и поместив его в общую папку.

Его увидит любой, у кого есть доступ и кто использует любой из видов «значков» или «плиток» в Проводнике.

Связанный контент