Hallo zusammen,
@patrickn: Die Anfrage tauchte hier im Forum immer wieder auf:
Ein Kunde hatte ebenfalls den Wunsch,
Synology-Ordner, die als Netzlaufwerk eingebunden sind, farblich markieren zu können. (Aus der ursprünglichen Anforderung „Ordnerfarbe ändern“ wurde letztlich „Ordnersymbol ändern“, da hierfür keine zusätzliche .ico-Datei im Ordner gespeichert werden muss.)
Nach längerer Recherche (u. a. GitHub, Tests und etwas KI-Unterstützung) konnte ich eine funktionierende Lösung erarbeiten. Die Umsetzung ist zwar etwas umfangreicher, läuft bislang aber stabil unter Windows 11.
Vielleicht hilft es ja dem einen oder anderen.
Einrichtung
1. Ordnerstruktur anlegen
- Ordner C:\Tools erstellen
- darin den Unterordner
C:\Tools\OrdnerSymbolEinstellen
2. RCFI Tools herunterladen
Die
RightClick-Folder-Icon-Tools (RCFI) von GitHub herunterladen:
https://github.com/ramdany7/RightClick-Folder-Icon-Tools/releases
ZIP-Datei entpacken
(Passwort steht auf GitHub unter „How to install“)
Aus dem Ordner
resources wird nur folgende Datei benötigt:
FolderIconUpdater.exe
Diese Datei nach
C:\Tools\OrdnerSymbolEinstellen kopieren.
Alle übrigen entpackten Dateien sowie die ZIP-Datei können danach gelöscht werden.
3. Zusätzliche Dateien erstellen
Im Ordner
C:\Tools\OrdnerSymbolEinstellen folgende Dateien mit dem unten geposteten Inhalt (Code-Elemente) anlegen:
- Install_FolderSymbol.reg
Code:
Windows Registry Editor Version 5.00
; ============================== Hauptmenü ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen]
"MUIVerb"="Ordnersymbol einstellen"
"Icon"="shell32.dll,84"
"SubCommands"=""
; ============================== Menüpunkt 1 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\1]
"Icon"="imageres.dll,233"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\1\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_imageres-dll.bat\" \"%1\" 233"
; ============================== Menüpunkt 2 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\2]
"Icon"="imageres.dll,230"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\2\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_imageres-dll.bat\" \"%1\" 230"
; ============================== Menüpunkt 3 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\3]
"Icon"="shell32.dll,77"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\3\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_shell32-dll.bat\" \"%1\" 77"
; ============================== Menüpunkt 4 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\4]
"Icon"="shell32.dll,23"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\4\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_shell32-dll.bat\" \"%1\" 23"
; ============================== Menüpunkt 5 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\5]
"Icon"="shell32.dll,43"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\5\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_shell32-dll.bat\" \"%1\" 43"
; ============================== Menüpunkt 6 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\6]
"Icon"="shell32.dll,102"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\6\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_shell32-dll.bat\" \"%1\" 102"
; ============================== Menüpunkt 7 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\7]
"Icon"="shell32.dll,239"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\7\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_shell32-dll.bat\" \"%1\" 239"
; ============================== Menüpunkt 8 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\8]
"Icon"="shell32.dll,20"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\8\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\SetFolderIcon_shell32-dll.bat\" \"%1\" 20"
; ============================== Menüpunkt 9 ==============================
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\9]
"MUIVerb"="Reset"
[HKEY_CLASSES_ROOT\Directory\shell\OrdnerSymbolEinstellen\shell\9\command]
@="\"C:\\Tools\\OrdnerSymbolEinstellen\\ResetFolderIcon.bat\" \"%1\""
- Uninstall_FolderSymbol.bat
Code:
@echo off
reg delete "HKCR\Directory\shell\OrdnerSymbolEinstellen"
- SetFolderIcon_imageres-dll.bat
Code:
@echo off
REM %1 = Ordnerpfad
REM %2 = Icon-Index (z.B. 230)
set "target=%~1"
REM FolderIconUpdater aufrufen
"C:\Tools\OrdnerSymbolEinstellen\FolderIconUpdater.exe" /f "%target%" /i "C:\Windows\System32\imageres.dll" /n %~2
REM ---- SMB-Erkennung ---- (Prüfen, ob der Ordner auf einem Netzlaufwerk liegt und nur dann das Attribut +s = System für den Ordner setzen)
REM ---- UNC prüfen ----
if "%target:~0,2%"=="\\" (
attrib +s "%target%"
) else (
REM ---- gemapptes Laufwerk prüfen ----
net use %~d1 >nul 2>&1
if not errorlevel 1 attrib +s "%target%"
)
- SetFolderIcon_shell32-dll.bat
Code:
@echo off
REM %1 = Ordnerpfad
REM %2 = Icon-Index (z.B. 230)
set "target=%~1"
REM FolderIconUpdater aufrufen
"C:\Tools\OrdnerSymbolEinstellen\FolderIconUpdater.exe" /f "%target%" /i "C:\Windows\System32\shell32.dll" /n %~2
REM ---- SMB-Erkennung ---- (Prüfen, ob der Ordner auf einem Netzlaufwerk liegt und nur dann das Attribut +s = System für den Ordner setzen)
REM ---- UNC prüfen ----
if "%target:~0,2%"=="\\" (
attrib +s "%target%"
) else (
REM ---- gemapptes Laufwerk prüfen ----
net use %~d1 >nul 2>&1
if not errorlevel 1 attrib +s "%target%"
)
- ResetFolderIcon.bat
Code:
@echo off
REM %1 = Ordnerpfad
set "target=%~1"
del /f /a /q "%~1\desktop.ini"
REM FolderIconUpdater aufrufen
"C:\Tools\OrdnerSymbolEinstellen\FolderIconUpdater.exe" /f "%target%"
del /f /a /q "%~1\desktop.ini"
REM ---- SMB-Erkennung ---- (Prüfen, ob der Ordner auf einem Netzlaufwerk liegt und nur dann das Attribut rücksetzen)
REM ---- UNC prüfen ----
if "%target:~0,2%"=="\\" (
attrib -s "%target%"
) else (
REM ---- gemapptes Laufwerk prüfen ----
net use %~d1 >nul 2>&1
if not errorlevel 1 attrib -s "%target%"
)
4. Installation
Die Datei
Install_FolderSymbol.reg mit
Administratorrechten ausführen bzw. in die Registry importieren.
Hinweis:
Die Installation nimmt Änderungen an der Windows-Registry vor.
Bitte nur mit Administratorrechten ausführen und idealerweise vorher ein Registry-Backup erstellen.
Nutzung auf eigene Verantwortung.
Deinstallation bzw. das Entfernen aus der Registry ist mit der Uninstall_FolderSymbol.bat möglich (Admin-Rechte!).
5. Verwendung
Im Explorer-Kontextmenü erscheint anschließend der Eintrag:
„Ordnersymbol einstellen“
Es stehen 8 Symbole zur Auswahl sowie eine Reset-Funktion.
Die Ordnersymbole lassen sich damit ändern auf:
- lokalen Laufwerken
- SMB-Netzlaufwerken
- eingebundenen Synology-Freigaben
6. Erweiterungsmöglichkeiten
Mit entsprechenden IT-Kenntnissen lassen sich weitere Icons aus den Windows-Systemdateien
einbinden oder die Auswahl erweitern.
Hinweise
- In Ordnern mit geändertem Symbol wird die System-Datei desktop.ini angelegt und bei Netzwerkordnern das Attribut 'System' gesetzt. (Windows liest das Symbol über die Datei desktop.ini aus. Damit das Symbol korrekt angezeigt wird, muss bei Netzwerkordnern zusätzlich das Attribut „System“ gesetzt sein.)
- Es wird nichts auf der Synology selbst verändert.
- Die Anpassung erfolgt clientseitig über Windows.
- Getestet unter Windows 11 mit SMB-Freigaben.
- Eine Lösung ohne die FolderIconUpdater.exe hat bei mir nicht stabil funktioniert, da nur über die FolderIconUpdater.exe der Icon-Cache im Explorer zeitnah und erfolgreich neu geladen und erst dann die Symboländerung sichtbar wird.
- Andere Windows-Clients sehen die geänderten Symbole ebenfalls (auch ohne Installation).