Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. For example, if the directory D:SYMLINK specified C:WINNTSYSTEM32 as its target, then an application accessing D:SYMLINKDRIVERS would in reality be accessing C:WINNTSYSTEM32DRIVERS. Directory symbolic links are known as NTFS junctions in Windows. Unfortunately, Windows comes with no tools for creating junctions—you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction. Junction not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Windows’ Remote Storage Service (RSS), as well as volume mount points.

Using Junction

Use junction to list junctions:

Usage: [-s]

-s Recurse subdirectories


To determine if a file is a junction, specify the file name:

junction c:test

To list junctions beneath a directory, include the –s switch:

junction -s c:

To create a junction c:Program-Files for “c:Program Files”:

C:>md Program-Files

C:>junction c:Program-Files “c:Program Files”

To delete a junction, use the –d switch:

junction -d c:Program-Files

Junction home page: Junction