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


11

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

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

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

Ответы:


12

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

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

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


1
Вот более подробный список desktop.iniопций
Тобиас Кинцлер,

1
Возможно ли, что это не работает для SMB-ресурсов, которые размещены на компьютере с Linux? Я устанавливаю desktop.ini на моем компьютере с Windows и пытаюсь увидеть дерево файлов в Windows. Мой desktop.ini не спрятан, и я не вижу свой собственный значок :( -
Майкл Уолтер

Возможно ли, что к вашему desktop.ini добавлено еще одно скрытое расширение, из-за которого оно не используется? Я не верю, что Windows чувствительна к тому, где находится папка, будь то через собственный CIFS Windows или через Samba CIFS / SMB.
ssnobody

1
Есть несколько ошибок. В каталоге должен быть установлен атрибут «только для чтения»; desktop.iniдолжен быть «скрытый» и «система». Я не знаю, как это можно сделать в Linux. Кроме того, desktop.iniфайл должен быть в кодировке Unicode. Это, вероятно, не произойдет, если вы создадите файл с помощью * nix инструментов, таких как vi.
G-Man говорит: «Восстановите Монику»

1
Обратите внимание, что вам также нужно установить папку, содержащую только для чтения (или системы), например, через attrib +rили attrib +s.
Тобиас Кинцлер

2

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


1

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

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


Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос. Это не меняет значок папки.
DavidPostill

1

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

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

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

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

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

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

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

    • Ссылки быстрого доступа оцениваются и кешируются по умолчанию в 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
===============================================================

У samba есть параметры, которые влияют на то, как Linux сообщает Windows «атрибут только для чтения», и которые позволяют Windows Desktop обрабатывать Desktop.ini для общих ресурсов SMB
ssnobody

0

Создайте папку значков, например, C:\Iconsна сервере (вы можете скрыть папку из свойств, если не хотите ее видеть). Поместите ваши .icoфайлы в эту папку. Настройте ваши общие папки на сервере. Теперь скопируйте ваши .icoфайлы C:\Iconsв ваш клиент ПК (как дубликат). Теперь вы увидите значки сетевого ресурса на ПК (на сервере и на клиенте). Если вы не можете получить доступ к Серверу, вы можете только создавать ярлыки на Клиенте и изменять их значки.


Это трудно понять и подозрительно. Что вы подразумеваете под «Настройте свои папки на сетевом ПК»? ОП говорит, что не может. Вы имеете в виду, что он должен войти в систему непосредственно на машине, которая разделяет диск? Кроме того, помещать вещи в корневой каталог не рекомендуется.
G-Man говорит: «Восстановите Монику»

Конечно, вы должны получить доступ к сетевому компьютеру, если вы хотите настроить значки папок.

После этого скопируйте все свои файлы ico на другой компьютер (по тому же пути, например, c: \ icons), и вы увидите значки общего сетевого ресурса на обеих машинах.

(1) Если вы говорите, что пользователь должен войти непосредственно в «сетевой компьютер», то я предлагаю вам сказать «Вы должны войти непосредственно в удаленный компьютер (файловый сервер)». Разрешение на использование общего ресурса на сервере не обязательно подразумевает разрешение / возможность входа непосредственно на него. (И, ИМХО, «сетевой ПК» - плохая терминология.) (2) Я все еще рекомендую не помещать вещи в корневой каталог.  \Users\Public\Documentsили эквивалент, вероятно, лучше. И даже это необходимо, только если вы хотите использовать значки, которых еще нет на файловом сервере.
G-Man говорит: «Восстановите Монику»

Хорошо, но пользователь хотел знать, как настроить значки на \\ server \ share; ответ: вам нужно получить доступ к серверу; и если вы не поместите одинаковые значки в один и тот же путь на вашем компьютере, вы никогда не увидите эти значки (кроме как на сервере). Тогда мы можем обсудить все остальное ... терминологию, каталоги и т. Д. Я хотел сделать то же самое, и это единственный способ :)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.