Good to Know Database

Windowsgilt für Windows 10 und 11

Wie lege ich unter Windows symbolische und feste Verknüpfungen an?

Ein Ordner soll an zwei Stellen erscheinen, ohne ihn zu kopieren, etwa ein Spielstand, der auf ein anderes Laufwerk umziehen soll, während das Programm ihn am alten Ort erwartet. Windows-Verknüpfungen aus dem Kontextmenü helfen da nicht. Was ist der richtige Weg?

Von 3 Min. Lesezeit

Lösung

Kurz: mklink in der Eingabeaufforderung. mklink /D Link Ziel legt einen symbolischen Link auf einen Ordner an, mklink /J eine Junction, mklink /H einen Hardlink auf eine Datei. Programme sehen den Link wie den echten Ordner.

Die vier Varianten

mklink-Varianten unter Windows
BefehlLegt anHinweis
mklink Link Zielsymbolischen Link auf eine Dateibraucht Adminrechte oder den Entwicklermodus
mklink /D Link Zielsymbolischen Link auf einen Ordnerbraucht Adminrechte oder den Entwicklermodus, auch Netzwerkziele möglich
mklink /J Link ZielJunction auf einen Ordnerohne Adminrechte, nur lokale Laufwerke
mklink /H Link ZielHardlink auf eine Dateiohne Adminrechte, nur auf demselben Laufwerk

Beispiel: Ordner auf ein anderes Laufwerk verlegen

Den Ordner zuerst an den neuen Ort verschieben, dann am alten Ort eine Junction anlegen, die dorthin zeigt:

move "C:\Spiele\Speicherstände" "D:\Speicherstände"
mklink /J "C:\Spiele\Speicherstände" "D:\Speicherstände"

Die Reihenfolge ist wichtig: zuerst der Name des Links, dann das Ziel. Am Link darf noch nichts liegen.

Link wieder entfernen

Einen Ordnerlink oder eine Junction löscht rmdir "C:\Spiele\Speicherstände", einen Dateilink del. Dabei verschwindet nur der Link, das Ziel bleibt unangetastet.

Nachträge

Warum meldet PowerShell, dass es mklink nicht gibt?

mklink ist ein eingebauter Befehl der Eingabeaufforderung, kein eigenes Programm. In PowerShell ruft man ihn über cmd /c mklink /J Link Ziel auf oder nimmt das Gegenstück:

New-Item -ItemType SymbolicLink -Path "C:\Link" -Target "D:\Ziel"

Für eine Junction heißt der Typ Junction, für einen Hardlink HardLink.

Was ist der Unterschied zwischen symbolischem Link und Junction?

Beide leiten auf einen Ordner um. Eine Junction funktioniert nur zwischen lokalen Laufwerken, braucht aber keine Adminrechte. Ein symbolischer Link kann auch auf Netzwerkfreigaben und relative Pfade zeigen. Für das Verlegen von Ordnern auf ein anderes internes Laufwerk reicht die Junction.

Wie erkenne ich einen Link im Explorer?

Symbolische Links und Junctions tragen im Explorer einen kleinen Pfeil am Symbol. In der Eingabeaufforderung zeigt dir sie als <SYMLINKD> oder <JUNCTION> samt Ziel an.

Quellen