![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Last Updated April 28 2019, Version 3.9.2.4
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Privacy Statement | The privacy statement can be found here | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Quick Start |
Download Documentation Frequently asked questions (FAQ) Blog History Donations French |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Introduction |
The NTFS file system
implemented in NT4, Windows 2000, Windows XP, Windows
XP64, and Windows7/8/10 supports a facility known as hard links
(referred to herein as Hardlinks). Hardlinks provide
the ability to keep a single copy of a file yet have it
appear in multiple folders (directories).
They can be created with the POSIX command
ln
included in the Windows
Resource Kit, the fsutil command utility
included in Windows XP or my command line
ln.exe utility
Thus, using standard
Windows facilities Hardlinks can only be created at
the command prompt, which can be tedious, especially
when Hardlinks to multiple files are required or when
one only makes occasional use of Hardlinks.
Support for Junctions in standard Microsoft software
offerings is even more limited than that offered for
Hardlinks.
Link Shell Extension (LSE) provides for the creation of Hardlinks , Junctions , Volume Mountpoints , and Windows7/8's Symbolic Links, (herein referred to collectively as Links) a folder cloning process that utilises Hardlinks or Symbolic Links and a copy process taking care of Junctions, Symbolic Links, and Hardlinks. LSE, as its name implies is implemented as a Shell extension and is accessed from Windows Explorer, or similar file/folder managers. The extension allows the user to select one or many files or folders, then using the mouse, complete the creation of the required Links - Hardlinks, Junctions or Symbolic Links or in the case of folders to create Clones consisting of Hard or Symbolic Links. LSE is supported on all Windows versions that support NTFS version 5.0 or later, including Windows XP64 and Windows7/8/10. Hardlinks, Junctions and Symbolic Links are NOT supported on FAT file systems, and nor is the Cloning and Smart Copy process supported on FAT file systems. Within this document the terms action button and action (pop up) menu are used to refer what are often referred to as the right mouse button and the pop up menu that is displayed when that mouse button is pressed (often referred to as the context menu). Recognising that people swap the usage of their mouse buttons, Microsoft refer to the primary and secondary mouse buttons. We prefer to refer the mouse buttons as the Select button and the Action button; and rather than terms such as Context Menu, Shell Menu, Right Mouse Menu we use the term Action menu. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Installation |
The current user must have administrator privileges in order to install the software.
LSE is installed by executing the install program
(HardLinkShellExt_$(platform).exe).
Follow the instructions issued by the program, there are no mandatory
inputs required during installation, it is possible to
change the location into which LSE is installed, the
default is
During installation Explorer.exe has to be restarted to make Link Shell Extension active.
This means that all pending operations with explorer.exe are interrupted, but with the
interactive install you can decide to postpone the explorer.exe restart. A dialog box
will give you the choices during installation.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Installation Arguments |
Some command line switches can be passed during install, so that a silent install via .bat file
can be acchieved. Silent install /S pops up no prompts during install. If the /S switch is used, explorer.exe will be restarted after installation, to make Link Shell Extension active immediately. Specify Language /LANGUAGE passes the language in which LSE shows up. e.g. HardLinkShellExt_$(platform).exe /S /Language=English Currently English, Chinese, Czech, French, German, Greek, Italian, Japanese, Korean, Polish, Portuguese, Russian, Slovak, Spanish, Swedish and Turkish are available as valid parameters for the /Language switch.
Specify Directory HardLinkShellExt_$(platform).exe /S /Language=English /D=C:\Program Files\LSE
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Using Link Shell Extension |
Pick Link Source causes the selected files to be "stored" as the source for the Hardlinks that you want to create.
To create the Hardlinks a destination folder must be chosen, by clicking the mouse action button on the destination folder a menu will pop up, which will include the entry - Drop HardLink
Choosing Drop HardLink will create the Hardlinks in the selected destination folder. Overlay Icons for HardlinksTo help distinguish hardlinks folders from normal files, an overlay icon is implemented on hardlinks that shows a red arrow icon under the folder. Overlay icons for Hardlinks can also be customized.
In Windows 2000 and XP Hardlinks can also be dropped via an Action button click in the "white space" of Windows Explorer's right pane and choosing Drop HardLink from the popup menu. It should be noted this feature is only guaranteed to work in Windows Explorer; many Explorer replacements implement an application specific white space action menu that is not readily accessible from general purpose shell extensions such as LSE.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Cancel current Pick Link operation |
When doing an Action button click in the destination folder
background, in addition to the Drop HardLink option there is the
possibility to Cancel Link Creation
entry.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Popup Submenue |
Since LSE supports Junction, Clones and with Windows7/8/10 Symbolic Links, when one or more folders are selected as the Source Links they can be dropped in several forms. To avoid crowding the popup menu, a submenu is provided that contains the different types of Links applicable to folders.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Drag and Drop Support |
Creating Hardlinks via drag and drop is supported, after selecting one or more files you can drag them to the destination folder with the Action button held down; when it is released choose HardLink Here from the action menu to create the Hardlinks of the selected files in the destination folder.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Auto Rename |
Files can be hard
linked to the same folder as the source folder. Because two
directory entries cannot have the same name, LSE uses
'$filename - Hardlink.$ext' as the name of the the new
link. With Windows XP this behaviour is different and LSE behaves under XP accordingly: 'HardLink of $filename'
LSE uses
the same hydraulics as explorer when it comes to multiple
'$filename - Hardlink': It uses numbers to enumerate the
multiple hardlinks of one file in the same directory, e.g.
$filename - Hardlink (2).$ext.
The Auto Rename mechanism is also used when Junctions, Hardlink Clones,
Symbolic Links, Symbolic Link Clones, Mountpoints or Smart Copies are created
in the same directory.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Junction Support |
Junctions are a feature of NTFS version 5.0, they provide for the creation of linkages among directories, Junction were not supported in NTFS Version 4.0
Junctions are created in the same way as Hardlinks, except that the Source Link is a folder rather than a file. Select a folder, click the right mouse button, choose Pick Link Source from the action menu, navigate to the destination folder, click the action button, open the submenu Drop As ... and select Junction:
Junctions are marked with a small piece of chain below the folder icon.
Junctions can also be created via Drag and Drop when the selected folders are dragged with the action button pressed to a destination folder; when the right mouse button is released, select the Drop Here ... submenu and then Junction.
Junctions can be
deleted by using the Delete commands from Explorer as
usual, if Link Shell Extension is installed, because
Link Shell Extension implements a so called CopyHook handler, which
intercepts Explorers Delete commands, and thus fixes
Explorers problems with junctions. To show the origin of a junction, the reference column of a junction shows the path to which the selected junction links.
Junctions are a
powerful feature, but can also be a dangerous feature without
Link ShellExtension precautions under Windows Version < Windows Vista.
Nativly Explorer shipped with < Vista becomes unstable if you use normal delete or
rename functions on junction folders. Windows Explorer will
always terminate abruptly and depending on system settings,
Windows XP may do likewise.
Overlay Icons for Junctions
Junctions can span network drives as long as the target is a mapped network drive.
Unfortunately Junctions, which have a UNC Path as target, can be created
with LSE, but even Vista seems to contain a bug, which prevents it from
dereferencing a UNC Path in a junction, even if LSE correctly sets up
the reparse info for UNC junctions. When a UNC target junction is
double clicked in explorer the error ERROR_INVALID_REPARSE_DATA(4392), will
show up and tell you that the info in the reparse point is illegal, even if
it is not.
@Microsoft: Why didn't you enable this feature for junctions, even if the syntax
for UNC junctions is defined: \??\UNC\server\share. Any help appreciated.
With Vista and Windows7/8/10 some folders, e.g. c:\Program Files needs elevation for junctions
beeing created in. This is why the famous UAC dialog must be acknowledged.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Replacement Junction Symbolic Link Mountpoint |
Link Shell Extension can change the target of an existing Junction, Symbolic Link or MountPoint either via Pick/Drop or Drag and Drop. To use this feature simply select an existing directory as Link Source and drop it over an already existing Junction/Symbolic Link/Mountpoint. By selecting the 'Drop as ... Replacement Junction/Symbolic Link/MountPoint' from the action menu, the target of an already existing Junction/Symbolic Link/MountPoint is replaced by the newly picked target.
The same can be achieved via Drag an Drop for Symbolic Link Directories, Junctions and Mount Points, but not for Symbolic Link Files. Symbolic Link Files have to be repaired by the 'Pick Link Source', 'Drop as ... Replacement Symbolic Link' repair alternative. When the backup mode is selected the ACLs of the Junction/Symbolic Link/MountPoint are preserved. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Copy Junction Symbolic Link Mountpoint |
Link Shell Extension can copy an existing Junction, Symbolic Link or MountPoint either via Pick/Drop or Drag and Drop.
To use this feature simply select an existing Junction, Symbolic Link or MountPoint as Link Source and drop it over an already existing directory. By selecting the 'Drop as ... Junction/Symbolic Link/MountPoint Copy' from the action menu, the Junction/Symbolic Link/MountPoint is copied to the target and the relation is adjusted
The same can be achieved via Drag an Drop for Symbolic Link Directories, Junctions and Mount Points. When the backup mode is selected the ACLs of the Junction/Symbolic Link/MountPoint are preserved. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Smart Copy |
Smart Copy creates a copy of the directory
structure from the source location to the destination, but it preserves the inner
hardlink structure and inner junction/symbolic link relations of the source, and
recreates this inner hardlink structure and inner junction/symbolic link relation
at the destination location:
With hardlinks it behaves as follows:
By closely looking at the above picture one can find three different types of files:
With junctions or symbolic link directories the default behaviour during smartcopy is as follows:
By closely looking at the above picture one can find three different types of folders/junctions:
Windows7/8/10 and Windows Vista support Symbolic Links, which behave as follows during Smart Copy:
By closely looking at the above picture one can find three different types of files/symbolic links:
Smart Copies are created in the same way as Junctions, select a folder, click the Action button, choose Pick Link Source from the action menu...
...navigate to the destination folder, press the action button, open the Drop As ... submenu and select Smart Copy:
Smart Copy is a must if e.g.. the whole content of a hard disk, which has lots of hardlinks/junctions/symbolic links, should be copied to another hard disk. During the Smart Copy operation empty folders get copied too and the date/time stamps of folders/junctions/symbolic links are also restored at the corresponding destination locations. Because Smart Copy creates inner hardlinks/junctions/symbolic links, this feature is only available on NTFS volumes. If Smart Copy takes longer than 250msec a progressbar shows the status of the smart copy operation. Smart Copy also processes all available alternative NTFS streams of a file. If items are already available in the destination, Smart Copy only copies when the Files/Symbolic/Junctions/MountPoints are newer than the already existing items. When restoring Symbolic links under Windows7/8/10 and Windows Vista, LSE forks its helper LSEUacHelper.exe to forwards this operation to it, because the creation of symbolic links needs elevation, and thus brings up the famous UAC dialog. LSE only issues its helper LSEUacHelper.exe if a symlink is among/below the selected folders, so it saves you from one UAC prompt if you don't have symlinks among your selection. Smart Copy by default creates relative symbolic links during the Smart Copy operation.
Command Line |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Crop/Unroll/Splice Outer Junctions/ Symbolic Links |
During SmartCopy,
Smart Mirror
, Delorean Copy and
Clone
so called Outer Junctions/Symlink directories
may need processing. There are 3 different ways to deal with those Outer Junctions/Symlink
directories:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Multiple Source |
Multpiple Source Locations can be specified for SmartCopy, Clone, and
Delorean Copy. If there are junctions/symlinks between these source locations, they are handled as
inner junctions/symbolic links, because all source locations are dealt like a common root.
In the above example Location1 and Location2 are copied to Destination. Location2/Junction20 is treated as inner junctions to Location1/Folder10 in the source, and that's why Destination/Junction20 points to Destination/Folder10 in the Destination. The objective behind this is to treat all junctions/symlinks as inner junctions/symlins as long as they are in the set of source folders. With LinkShell Extension this works as follows:
In the above example all content from Location 1 and Location 2 and pskill.exe are selected. Possible junctions/symbolic links in Location 1 pointing to Location 2 or vice versa are treated as inner junctions/symbolic links, because all selection is treated as a common root. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Smart Move |
Smart Move enables folders with junctions and symbolic links beneath to be renamed, and the
junctions and symbolic links' targets are updated below that folder. Without Smart Move
renaming of such folders would end in dead junctions and symbolic links.
With junctions or symbolic link directories it behaves as follows:
By closely looking at the above picture one can find three different types of folders/junctions:
The Smart Move functionality is integrated into Explorer seamlessly, so that you don't have to do anything special. Simply drag a folder in explorer to its destination location, or e.g. press F2 in Explorer to rename a directory and LSE will intercept this operation under the hood, takes care of junctions or symbolic links, and will update them. Intercepting move and rename operation means, that LSE takes over control before rename/move, and recursivley searches the selected folder for junctions or symbolic links. But searching large amounts of files and folders takes time, so LSE will show a progress bar when searching takes longer than 250msec.
Smart Move creates relative symbolic links during the Smart Move operation. Enabling/Disabling Smart MoveSmart Move can be switched on/off via the configuration tool
Command Line |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Clone |
Clones are copies of a folder tree from a source location recreated at the destination location, however the
files within the new folder tree are Hardlinks or Symbolic Links to the respective files in the source folder tree.
A folder tree might also contain Junctions or Symbolic Links. The clone process recreates inner junction/symbolic links at the destination location very similar as Smart Copy does.
Outer Junctions/Symbolic links are recreated with respect to the specified Outer Junction/Symbolic Link handling. e.g. With Windows Vista and Windows7/8/10 this cloning process is also available with Symbolic Links instead of Hardlinks.
Clones are created in the same way as e.g Junctions. Select a folder, click the Action button, choose Pick Link Source from the action menu...
...navigate to the destination folder, press the action button, open the Drop As ... submenu and select HardLink Clone:
... or with Windows Vista or Windows7/8/10 choose Symbolic Link Clone to create clones of existing tree structures.
HardLink and Symbolic Link Clones can also be created via Drag and Drop, select a folder and drag with the action button depressed to a destination folder. When the action button is released open the Drop Here... submenu and select HardLink Clone or with Windows Vista and Windows7/8/10 Symbolic Link Clone:
HardLink or Symbolic Link Clones are useful if you need to replicate a folder tree at a different location. The disk space required is minimal because the new structure consists entirely of NTFS directory entries with no real amount of actual data storage. If both files and folders are selected as Source Links and dropped as a HardLink Clone then the selected files are dropped as Hardlinks alongside the HardLink Clones. Because Clones use Hardlinks or Symbolic Links, they are only available within an NTFS volume. Hardlink Cloning can not replicate the folder structure from one disk volume to a different volume, because Hardlinks are limited to operation on a single volume. Symbolic Link Clones can be used to create volume spanning Clones, but only on Vista or Windows7/8/10
When creating Clones under Windows7/8/10 and Windows Vista, LSE forks its
helper LSEUacHelper.exe to forwards this operation to it, if the folder tree
contains symbolic links, because the creation of
symbolic links needs elevation, and thus brings up the
famous UAC dialog.
Command Line |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Smart Mirror |
Smart Mirror is very similar to Smart Copy
and not only copies but synchronises the folder Source to Destination:
Smart Mirror is created in the same way as e.g Junctions. Select a folder, click the Action button, choose Pick Link Source from the action menu...
...navigate to the destination folder, press the action button, open the Drop As ... submenu and select Smart Mirror:
Smart Mirror is a little bit different with respect to Auto Rename, because it expects a already existing folder in the destination location, which has the same name as the source folder, so that it can do the mirror.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DeLorean Copy |
DeLorean Copy is a way of creating incremental backups
by using a combination of hardlink clone and Smart Copy.
The following picture gives an overview what DeLorean Copy is about
In general a DeLorean Copy has 3 principals: Source(t), InitialBackup and Backup(n).
The point is that all files in Backup1 are transparently accessible, but really little space is used, because not all files in the Source(t+1) changed, so that there was only the need to effectively copy over a few files from Source(t+1) to Backup1. This can be repeated on and on. The second round would be using Source, Backup1 and Backup2 for DeLorean Copy:
DeLorean Copies are created in the same way as e.g Junctions. Select a folder, click the Action button, choose Pick Link Source from the action menu...
...navigate to the destination folder, press the action button, open the Drop As... submenu and select DeLorean Copy:
If a DeLorean Copy was dropped the first time onto a directory, the operations, which are described under
phase 1 in the above descriptions, namely a Smart Copy, is performed. Link Shell Extension automatically
generated the folder name for the destination by appending a timestamp.
Any successive drop of a directory onto the a destination directory initates Phase 2 and Phase 3 from the
above description, namley it does the Hardlink Clone from the former backup onto the current backup and
furthermore does mirror the source onto the current backup.
A directory holding many copies may look like this.
Command Line |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Backup Mode |
Backup mode enables LSE to also copy ACLs and Encrypted Files from all directories, even the ones without access for the current users.
Backup Mode is disabled by default, and can be turned on via the LSE configuration tool.
To perform backup operations a user must hold the SE_BACKUP_NAME and SE_RESTORE_NAME privileges.
An out of the box Wndows configuration assigns the Backup-Operator and Administrator group these privileges, but
additionally the above privileges can be assigned individually to certain users or groups.
and navigating to "Computer Configuration" ->"Windows settings" -> "Security Settings" -> "Local Policies" -> "User Rights Assignments" -> "Backup files and directories" "Computer Configuration" ->"Windows settings" -> "Security Settings" -> "Local Policies" -> "User Rights Assignments" -> "Restore files and directories"
Without gpedit.msc |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Volume Mount Point Support |
Volume Mountpoints are a feature of NTFS version 5.0, which provides functionality to map complete local volumes onto arbitrary disk locations. Volume Mountpoints were not supported in NTFS Version 4.0
Volume Mountpoints are created in the same way as Hardlinks, except that the Source Link is a volume rather than a file. Select a local volume, click the right mouse button, choose Pick Link Source from the action menu, navigate to the destination folder, click the action button, open the submenu Drop As ... and select Volume Mountpoint:
Volume Mountpoints can also be created via Drag and Drop when the selected local volume is dragged with the action button pressed to a destination folder; when the right mouse button is released, select the Drop Here ... submenu and then Volume Mountpoint.
Mount Points can be deleted by using the Unmount Volume command from Explorer as usual.
To show the origin of a Volume Mountpoint, the reference column of a
Volume MountPoint shows the volume which is mounted onto the selected path.
Make sure that only local volumes can be mounted but not mapped network drives.
Vista & Windows7/8/10: With Vista & Windows7/8/10 the creation and deletion of Volume Mountpoints is bound to
successful elevation, which means that the famous UAC dialog
must be acknowledged.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Reference Count |
As described in the
backgrounders section within
the “default” data stream of all data objects
NTFS maintains a reference count how many NTFS directory
entries refer to object. In most scenarios each entry will
refer a different folder, although it is possible to have
multiple links to the same data object in the one folder,
providing they have folder unique names
To show the reference counts, a column can be enabled in Explorers right pane by action clicking the Titles row of the details view.
After enabling the reference column the reference count is shown for each file. This feature is only available in Windows 2000 and XP, it is not supported in Windows NT4.
Vista & Windows7/8/10: The column, which shows the reference count and the origin of the junction is not available, because the way Vista and Windows7/8/10 handles user defined columns has been completely revamped by Microsoft and all applications working with so called ColumnHandlers will not work. Microsoft did such a good job in changing interfaces, so that it is impossible to revive this feature in Windows7/8/10. Sorry. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Link Properties |
Link Shell Extension also supports so called Explorer Property Sheets, which means that if a file or directory property in explorer is opened, Link Shell Extension adds its own tab to show the properties of a hardlink, junction, volume mountpoint or symbolic link. This additional tab only shows up in the file or directory properties, if the file or directory is a hardlink, junction, volume mountpoint or symbolic link, otherwise this tab is not available.
Explore
Edit If the Backup Mode is enabled, the ACL of the edited Junction, Symbolic Link or Mountpoint is preserved. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
SymbolicLink with Vista and Windows7/8/10 |
With Windows Vista and Windows7/8/10 NTFS introduces a
new type of link, the Symbolic Link. LSE supports the creation of symbolic links
under Windows Vista and Windows7/8/10.
Creating a Symbolic Link is essentially the same as the other Link creation processes. Action click on the selected file(s) and select Pick Link Source(s) from the action menu.
Under Vista/W7 when the destination folder is action clicked the menu contains a Drop As ... submenu, to create a Symbolic Link select SymbolicLink from the submenu. Unlike Hardlinks Symbolic Links can span storage volumes.
If both files and folders are selected as the Source Links and dropped as a Symbolic Link Clone then the selected files are dropped as Symbolic Links alongside newly created Symbolic Link Clone folders. Symbolic Links can also be created between directories.
Relative versus absolute symbolic link target pathnames
Overlay Icons for Symbolic Links To help distinguish Symbolic Links from normal files/directories, an overlay icon is implemented on symbolic links that shows a light green arrow icon under the folder. Overlay icons for Symbolic Links can also be customized.
@Microsoft: Symbolic can span network drives as long as the target is a drive letter mapped drive, but it fails for UNC names in symbolic link target with error ERROR_LOGON_FAILURE(1326), even if the network is connected properly. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Enumeration of Hardlinks |
With Vista and Windows7/8/10 it is possible to enumerate
all hardlink siblings to a file in constant time. Simply select a hardlinked file and select
Properties from the right click action menu:
Under XP reading and processing the unique file ID of all filenames on a disk
is necessary to gather the same information. Since this operation is timeconsuming,
the siblings of a hardlinked file are not shown immediately after opening
the properties tab, but the 'Enumerate Siblings' button must be pressed.
Enumeration of all siblings under XP can take time, because in the worst case all
files contained on a logical volume must be at least opened for the filename.
The Hardlink Enumeration functionality is also available via
command line from
ln.exe
via the --enum or
the --list command line switch.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| UAC |
One of the major Windows7/8/10 changes was the so called
User Account Control (UAC)
. Due to UAC some API calls need elevation to administrative
level, and this elevation must be acknowledged via the below shown dialog box. Unfortunately,
and I still can't believe this, the API call CreateSymbolicLink is a call, which
needs elevation, and thus causes this annoying dialog box come up every time a symbolic
link is created.
UAC will be the reason, that many applications simply
either will not work, or are not useable with Windows7/8/10. They are not useable, because
privileged API calls and non privileged API calls are mixed in the code, and first
need to be separated by architectural means into an separate .exe, which gets elevated,
and an .exe for the rest of the coding.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Change Symbolic Link Privilege |
One way to come around the UAC prompt for the creation of Symbolic Links is to globally allow users to create Symbolic Links by changing the policy.
With gpedit.msc
Without gpedit.msc Linkshell Extension can deal with the above granting of privileges, and if the Symblic Link Privilege is available avoids the UAC prompt.
Developer mode in Windows10 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Remote Capabilities |
It is little known, but the SMB networking protocol supports operations to
create remote Hardlinks, Junctions and Symbolic Links within SMB mapped
network NTFS drives.
This feature is used by Link Shell Extension, to enable the creation of
so called Remote Hardlinks, Remote Junctions, or Remote Symbolic Links. e.g.
A Hardlink has been created, which can be easily verified
Furthermore SMB1.0 also reports the reference count for Hardlinks and the junction origin for Junctions, which enables Link Shell Extension to show the properties dialog for remote files. Currently the reference count of a hardlink is reported via SMB1.0 in 90% correctly, so please be aware of this restriction. @Microsoft: Why does this happen in 90%? I have scanned my code in the meantime many times, and it is obvious, that the same call sometimes succeeds and sometimes not. Why??? If you wanna hunt down a bug in your code, please contact me!
LSE supports both, mapped network drives and UNC paths. Mapped but not available network drives can in general be the reason for sloppy explorer startup performance. Delays of a few seconds can be experienced if explorer has to check all drive mappings, especially the ones which are not available. This gets worse, if LSE also checks the status of all drives.
To workaround this caveat the Remote Capabilities of Link Shell Extension
can be switched on/off via the configuration tool.
Remote Hardlinks and the SMB version
SMB1.0: Windows XP, Windows2000 ...
SMB3.0: Windows10, Windows Server 2012 R2 ... All of those version support the creation of hardlinks remotely, but since SMB2.0 one can not find out if a file on a remote drive is a hardlink or not.
This means, that e.g if you connect with your Windows XP machine to a SMB2.1 drive,
which is provided by a Windows7/8/10 machine, you will not be able to see overlay icons
for hardlinked files, but you will be able to create them remotley. @Microsoft: Is this implementation since SMB2.0 a bug or a feature? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Removeable Media |
LSE supports removable media, which have been formatted with NTFS, to create
all kind of features it does for fixed drives too. The only limitation
is that it intentionally won't work on removable media if they
are mounted to drive A: or B:. The reason is that A: or B: are commonly used for floppy drives.
With removable media formatted to NTFS there is the slight chance that LSE reports 'Access denied' problems, when creating hardlinks or junctions. This is due to file object permissions on the removable NTFS drive, which have been created with a different computer on that removable media, thus causing this 'Access denied' messages. The solution here is to change the permission on that removable media as Administrator. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Very long Path |
The Win32 API supports pathnames up to 256 characters,
thus limiting all applications to that length for pathnames.
On the other hand NTFS supports pathnames with up to 32767 characters, so one might have already experienced pathnames, which are longer than 256 characters. To deal with that, LSE can handle Very Long Path up to 32767 characters with all operations. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Subst Handling |
With the subst.exe command one can create driveletters, which point to certain path on a NTFS volume. This means that two
different driveletters in the end might resolve to locations on the same NTFS volume. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Symbolic links for Windows XP |
Technically it seems that NTFS5 even shipped with WindowsXP has always supported symbolic links, but the functionality was not available for user mode applications, and even not for the upper layers of ntfs.sys BUT: There are filter drivers available from Masatoshi Kimura for even WindowsXP, which enable symbolic links under XP. These drivers can be downloaded from his home page for 64 bit and for 32 bit. The sources are also available. Installation of these drivers is also quite simple.
Link Shell Extension enables its complete symbolic link functionality under XP as soon as it finds this driver loaded. And, sensation(!): There is no UAC prompt necessary under XP for creating symbolic links ;-)) Furthermore there are reports from users who tried out the driver and LSE also under Windows2000, and everything works fine. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ReFs Support |
With Windows Server 2012 Microsoft introduced the
ReFS
filesystem, which is the designated successor to NTFS. But the first
implementation of ReFS can do nice things, but lacks a few important features from NTFS like the Hardlink support.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Third Party FileSystems |
There are a lot of filesystems out by third party vendors nowadays, which support hardlinks, symlinks...
In order to provide the LSE functionality on that drives, the supported filesystems can be configured: Changes to the known filesystems from the above registry key take efect after an explorer.exe restart.
If you don't know the name of the filesystem you might determine this by issuing
ln.exe from a command prompt. By default Btrfs is configured as a known third party filesystem. Configuring your favourite filesystem to be recognized by LSE is on your own risk. Basically LSE would do all operations to the configured filesystems, which it does to NTFS. So make sure your filesystem supports the same primitives as NTFS does otherwise certain operations will fail. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Configuration |
Link Shell Extension can be tweaked/configured to fit the different personal taste
in some aspects. To ease this, Link Shell Extension has a companion called LSEConfig,
which changes Link Shell Extension behaviour via a User Interface. Once started, LSEConfig will throw
the famous UAC UAC dialog, because Link Shell Extensions
settings are changed in the Windows registry.
Localisation Link Shell Extension's UI and commands are available in a few languages. You can choose from
Smart Move
Logging
Remote Capabilities
Outer Junction/Symbolic Link Handling
Symbolic Link Creation
Copy Mode
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Custom Overlay Icons |
Link Shell Extension has built in overlay icons for junctions, hardlinks and symbolic links.
Since icons are subject to individual taste, the icon used by Link Shell Extension can
be specified. Changing any settings related to overlay icons will ask for a restart of explorer when Apply or Ok is pressed.
Overlay Icon Sometimes it might be useful to totally disable certain overlay icons from Link Shell Extension, which can be acchieved by ticking the checkbox for overlay icons.
Or in other words Vista takes any 256x256 icon and resizes it to 92x92, moves it to the left lower corner and overlays. For all other resolutions smaller than 256x256, Vista works in the same way as XP, you have to prepare an overlay icon in the lower left corner. Furthermore Vista icons should not be saved 'compressed', because XP can not read compressed icons. For my investigations the icon editor of choice capable of dealing with Vista icons was RealWorld Icon Editor
Apply Changes
If changes were made to Link Shell Extensions language settings or
settings related to overlay icons, you will be asked to confirm a restart
of explorer.exe, so that your changes become effective. Restarting
explorer.exe means, that e.g. any copy operation or other pending operation
within explorer.exe is interrupted.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Backgrounders |
Hardlinks are a feature common to many
Unix based systems, but are not directly available with
NT4/W2K/WXP. It is a feature, which must be supported by
the file system of the operating system.
So what are Hardlinks? It is common to think of a file as being an association between a file name and a data object . Using Windows Explorer, the file system can be readily browsed, showing a 1:1 relationship between the file name and the data object, but this 1:1 relationship does not hold for all file systems. Some file systems, including UFS, XFS, and NTFS have a N:1 relationship between file name and the data object, hence there can be more than one directory entry for a file. So, how does one create multiple entries for the same data object? In Unix there is a command line utility ln, which is used to create link entries for existing files, hence there are many file names, or so called Hardlinks, for the one data object. For each HardLink created, the file system increments a reference count stored with the data object, i.e. it stores how many file names refer to the data object, this counter is maintained (by the file system) within the data object itself. When a file name referencing a data object is deleted, the data object’s reference count is decremented by one. The data object itself only gets deleted when the reference count is decremented to zero. The reference count is the only way of determining whether there are multiple file name references to a data object, and it only informs of their number NOT there whereabouts. Junctions are wormholes in the tree structure of a directed graph. By browsing a Junction a maybe far distant location in the file system is made available. Modifying, Creating, Renaming and Deleting files within a junction tree structure operates at the junction target, i.e. if you delete a file in a Junction it is deleted at the original location. Symbolic Links are to files what Junctions are to folders in that they are both transparent and Symbolic. Transparency means that an application can access them just as they would any other file, Symbolism means that the data objects can reside on any available volume, i.e. they are not limited to a single volume like Hardlinks. Symbolic Links differ from Shortcuts in that they offer a transparent pathway to the desired data object, with a shortcut (.lnk), something has to read and interpret the content of the shortcut file and then open the file that it references (i.e. it is a two step process). When an application uses a symlink it gains immediate access to the data object referenced by the symlink (i.e. it is a one step process). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Limitations |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Frequently Asked Questions |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| History |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Status |
The
3.8.6.x version is a stable version for the supported plattforms.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Acknowledgements |
I wish to thank those
who have contributed significantly to the development of
Link Shell Extension. Those include:
Felix Kasza for the hardlink basics with NT4. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Open Issues |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| License |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Contact / Donations |
Bug reports, or feature requests send to
Hermann Schinagl.. LSE is and will be freeware, but if LSE was really helpful for you and saved lots of your time please think of donations either via PayPal or by flattring me
19irqhz5cMDkp2hf9YWqDY26PgYguJQdc7
Link Shellextension also has its page on Facebook , where you can find announcements for new releases, and you can discuss feature requests Link Shellextension broadcasts its release notes via RSS . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Download |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Legacy Download |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||