Is a .lnk file a symbolic link or a junction?

Solution 1:

It is neither. Links and junctions are features of the file system, built into NTFS.

A .lnk is a feature of the "shell" - the desktop gui part of Windows. Effectively it is just a file that contains reference to another file (they can also point to any path that the shell knows how to open, including various URLs, or even pathless shell objects such as Computer or Control Panel folders or items contained there, or programs that aren't actually installed but "advertised" via Windows Installer).

It is the gui part of Windows that dereferences the link and opens the right file, whereas with a symbolic link or junction this is done by NTFS.