Quick fix: Junctions (mklink /J) work for directories only on the same volume. Symbolic links (mklink /D or /file with mklink) work cross-volume, even for files. Symlinks need Admin rights (or Developer Mode). Junctions don’t require admin. Use junction for local dir aliases, symlink for cross-drive / file targets.
Both junctions and symbolic links are reparse points on NTFS — pointers that redirect to other locations. They behave differently in scope (directories only vs files), permissions, and remote access. Pick the right one for your use case.
Affects: Windows 11.
Fix time: ~10 minutes to learn + use.
What causes this
NTFS supports two types of directory linking:
- Junctions (introduced in Windows 2000): pointer to directory on same volume. No admin needed.
- Symbolic links (Windows Vista+): pointer to directory or file, cross-volume, even to network share. Admin needed (or Developer Mode).
Different scope means different use cases.
Method 1: When to use junctions
Junctions for same-volume directory linking.
- Create junction:
mklink /J "C:\Apps\Steam Games" "C:\SteamLibrary"First path: alias to create. Second: actual location.
- Pros:
- No admin rights needed.
- Programs see junction as regular folder.
- Backups follow junction transparently in most cases.
- Cons:
- Same volume only.
- Folders only, not files.
- Doesn’t work for network shares.
- Use cases: redirect Program Files install location to another folder on same drive; alias a long path.
- For removing junction:
rmdir "C:\Apps\Steam Games"(just like normal folder — removes junction, not target). - For listing junctions:
dir /AL C:\— shows junction points.
This is the junction usage.
Method 2: When to use symbolic links
Symlinks for cross-volume or file linking.
- Create symbolic link to directory (cross-volume):
mklink /D "C:\Photos" "D:\PhotoStorage"Cross-drive. Admin needed for /D.
- Create symbolic link to file:
mklink "C:\config.json" "D:\Shared\config.json"File-level. Admin needed.
- Pros:
- Cross-volume.
- Files and directories.
- Can target network shares.
- Can target relative paths.
- Cons:
- Admin rights required (or Developer Mode: Settings → Privacy & security → For developers → Developer Mode).
- Some apps don’t follow symlinks correctly.
- Backups may treat differently.
- Use cases: share config files between locations; alias a folder on different drive; reorganize without moving data.
- For removing symlink:
del "C:\config.json"(for file) orrmdir "C:\Photos"(for directory).
This is the symlink usage.
Method 3: Use Developer Mode to avoid admin for symlinks
For frequent symlink users.
- Open Settings → Privacy & security → For developers.
- Toggle Developer Mode on.
- Now you can create symlinks without admin (in normal command prompt).
- For script automation: useful in build systems, dotfile management.
- For npm / yarn package managers: heavy symlink users. Developer Mode helps.
- For checking:
mklink /D "C:\test" "D:\target"as regular user. Should succeed. - For PowerShell:
New-Item -ItemType SymbolicLink -Path "C:\test" -Target "D:\target". Same Admin / Dev Mode requirement. - For corporate-managed PCs: Developer Mode may be restricted via Group Policy.
This is the dev-friendly setup.
How to verify the fix worked
- Junction created without admin prompt.
- Symbolic link created with admin (or in Developer Mode).
dirshows links with target paths.- Apps access content through link as if it were local.
- Removing link doesn’t delete target.
If none of these work
If links don’t work: FAT32 / exFAT: don’t support reparse points. NTFS only. Cross-PC network: junction can’t target network share. Use symbolic link. For specific apps: some installers don’t follow symlinks. Try junction. For Sysprep / image deployment: links can complicate. Carefully manage. For Git repos with symlinks: Git on Windows handles symlinks; enable via git config --global core.symlinks true. For chronic permission issues: take ownership of target directory before linking. For Linux subsystem (WSL): different symlink mechanism. WSL symlinks are Linux symlinks, separate from Windows symlinks.
Bottom line: Junctions (mklink /J): same-volume directories only, no admin. Symbolic links (mklink /D or for files): cross-volume, files OK, admin (or Developer Mode) needed. Pick by scope of your linking need.