The Windows NT File System (NTFS) sports a whole slew of features of interest to systems administrators and keyboard jockeys. Among them are symbolic links and junction points -- two ways of leading a pointer to content somewhere else in the file system. NTFS symbolic links can point to many things, including locations on other volumes or even a SMB path, while junction points are mainly limited to directories on the same volume.
It sounds like a great thing to have in theory, and in practice it is useful -- until, for instance, you inherit a system from someone else that has an unwieldy number of NTFS symbolic links and junction points with no documentation to speak of. Trawling through such a system is nobody's idea of fun. Command-line tools for managing junctions and symbolic links do exist, but at times you need something a little more user-friendly to stay on top of the mess.
Our old friend Nir Sofer has recently added a new tool to his ever-growing software arsenal that lets you do exactly that, called NTFSLinksView. It's a standalone program that runs on 32- and 64-bit Windows systems -- server and desktop alike -- and shares many functional similarities with his other programs, such as the ability to export data to XML/CSV. The program runs from anywhere -- including a USB drive -- but requires administrator permissions to work.
When you run the program, it polls the file system from a chosen folder downward and produces a report that you can sort by name, original pathname, link type, target pathname and time of creation. For instance, double-click on any of the listed NTFS links and you'll get a popup window with all the details for that link called out in separate fields.
You can also right-click on one or more selected links and export the selections in a variety of formats for use in other programs or just as a simple HTML report. Press F8 and you'll be taken to the target path for the currently-selected link in a new window. Finally, you can invoke the program with a slew of command-line options to automate all its functions.
Note that, by default, NTFSLinksView starts in the profile folder for the currently-logged-in user. It doesn't automatically traverse the entire file system and iterate all the available links. If you want to find out what links are in a particular folder, you need to punch in the pathname for the folder into the text box at the top of the application window and press Go. In theory, you could invoke NTFSLinksView from a recursive command-line script to iterate through all folders on a file system, but this is functionality that really should be within the program itself.
Another thing NTFSLinksView does not do, which I will explore in a follow-up article, is let you create or manage file system links. It's strictly for running down lists of existing links.
ABOUT THE AUTHOR
Serdar Yegulalp has been writing about computers and information technology for more than 15 years for a variety of publications, including InformationWeek and Windows Magazine.