Comment créer des liens symboliques (Symlinks) sous Windows

Les liens symboliques (ou symlinks) sont un peu étranges, mais extrêmement utiles une fois qu’on les maîtrise. Ce sont comme des raccourcis pour les fichiers ou les dossiers, mais intégrés directement au système de fichiers ; Windows les considère donc comme des fichiers physiques. En pratique, on les utilise surtout pour optimiser le système, par exemple pour déplacer des dossiers volumineux vers un autre disque sans problème, ou pour partager rapidement des fichiers sur des serveurs SMB. Franchement, sans eux, gérer des configurations complexes devient un vrai casse-tête, car Windows ne gère pas toujours les déplacements de fichiers de manière optimale.

Le hic ? Windows propose différents types de liens : liens physiques, jonctions et liens symboliques, chacun avec ses particularités. Les liens physiques pointent vers des fichiers locaux, les jonctions vers des répertoires (locaux ou distants), et les liens symboliques peuvent être l’un ou l’autre. Lorsqu’un accès transparent est nécessaire, notamment entre disques ou réseaux, les liens symboliques sont généralement la solution idéale, mais leur création requiert quelques manipulations en ligne de commande. Et bien sûr, des droits d’administrateur sont nécessaires, sauf si vous modifiez les stratégies de groupe. Le processus n’est pas extrêmement compliqué, mais il ne se fait pas non plus en un clic.

Comment créer un lien symbolique sous Windows ?

Méthode 1 : Utilisation de l’invite de commandes (mklink)

L’utilisation de mklink est la méthode la plus courante. Pourquoi ? Parce qu’elle est intégrée, simple et flexible. Petit hic cependant : il faut exécuter l’invite de commandes en tant qu’administrateur, sinon elle se bloque. C’est plutôt agaçant, car Windows complique inutilement la création de liens symboliques pour les utilisateurs lambda.

Pour ouvrir une invite de commandes avec privilèges d’administrateur, recherchez cmd dans le menu Démarrer, cliquez dessus avec le bouton droit et choisissez Exécuter en tant qu’administrateur. La syntaxe est ensuite simple. Par exemple, pour créer un lien symbolique vers le Bloc-notes :

mklink C:\PS\note.exe c:\Windows\System32\notepad.exe

Vous verrez un message du type : « Lien symbolique créé pour C:\PS\note.exe <==> c:\Windows\System32\notepad.exe ». Désormais, chaque fois que vous exécuterez note.exe, le Bloc-notes s’ouvrira, même s’il ne s’agit que d’un lien symbolique. Pratique ? Oui, surtout si vous en utilisez une douzaine dans votre flux de travail.

Méthode 2 : Création d’un lien symbolique de répertoire (à l’aide de l’option /D)

Il est tout aussi possible de créer des liens symboliques pour les dossiers. Par exemple, pour rediriger votre répertoire Téléchargements :

mklink /D "C:\PS\Downloads" "C:\Users\youruser\Downloads"

Cela simplifie l’accès au dossier Téléchargements depuis un emplacement personnalisé, sans avoir à tout copier. Lorsque vous ouvrez C:\PS\Téléchargements, vous visualisez le contenu du dossier Téléchargements, mais via votre lien. Un peu comme une fenêtre ouverte sur un autre dossier.

Approche PowerShell

Si vous êtes plus à l’aise avec PowerShell, vous pouvez également y créer des liens symboliques. La syntaxe est un peu plus verbeuse, mais elle est tout aussi efficace :

New-Item -ItemType SymbolicLink -Path ".\test\tmpfiles" -Target "..\tmp\files"

Cette méthode est utile pour la création de scripts ou l’automatisation, notamment si vous travaillez sur une machine distante ou si vous avez besoin de chemins relatifs.

Lien vers les partages réseau

Vous souhaitez créer un lien symbolique vers un dossier réseau ? Rien de plus simple. Il vous suffit de spécifier le chemin UNC :

mklink /D c:\ps\share \\hq-fs01\Share

Cette astuce est idéale pour centraliser l’accès aux serveurs, notamment si plusieurs utilisateurs ou applications dépendent de données partagées. Attention cependant : Windows peut bloquer les liens symboliques distants, sauf si vous modifiez certaines stratégies.

Pour activer les liens symboliques distants, vérifiez votre configuration actuelle avec :

fsutil behavior query SymlinkEvaluation

Si le message « Les liens symboliques distants vers locaux sont désactivés » s’affiche, vous pouvez les activer en exécutant la commande suivante :

fsutil behavior set SymlinkEvaluation R2R:1 fsutil behavior set SymlinkEvaluation R2L:1

Après cela, Windows autorise les liens symboliques vers les ressources distantes, mais attention : les règles de sécurité du réseau peuvent bloquer certains de ces liens selon la configuration. C’est un peu fastidieux, mais ça fonctionne une fois configuré.

Comment trouver tous les liens symboliques sur un lecteur Windows ?

Vous voulez trouver tous les liens symboliques qui se cachent sur votre disque ? Windows ne le rend pas évident, mais vous pouvez utiliser une commande comme :

dir /AL /S C:\ | find "SYMLINK"

Cette commande liste tous les fichiers possédant l’attribut « L » et analyse également les sous-dossiers, même de manière récursive. Ce n’est pas l’idéal, mais ça dépanne si vous ne voulez pas vous perdre dans une multitude de fichiers.

Si vous préférez PowerShell, essayez ceci :

Get-ChildItem -Path C:\ -Force -Recurse -ErrorAction 'silentlycontinue' | Where { $_. Attributes -match "ReparsePoint"}

Cette commande analyse chaque répertoire de C:\ et filtre les objets marqués par l’ attribut ReparsePoint, qui indique les liens symboliques, les jonctions ou les points de montage. C’est assez simple une fois qu’on a pris le coup de main, mais prévoyez un certain délai si votre disque est volumineux.

Honnêtement, la gestion des liens symboliques n’est pas aussi simple que de double-cliquer sur un bouton, mais une fois qu’on a compris le principe, cela devient un moyen puissant d’organiser et de lier des éléments sans dupliquer des fichiers à l’aveuglette.

Conclure

La création de liens symboliques est souvent sous-utilisée et méconnue. Dans certains cas, c’est une solution rapide, dans d’autres, une solution indispensable pour gérer l’espace disque ou les partages réseau. N’oubliez pas que vous devez disposer de droits d’administrateur pour les configurer, sauf si des modifications de stratégie sont apportées. Surveillez également le « point de réanalyse » défini par Windows, car le système pourrait refuser certains liens.

Résumé

  • Utilisez la commande mklink depuis une invite de commandes administrateur pour la plupart des liens.
  • Pour les liens vers des dossiers, ajoutez/D
  • PowerShell est pratique si vous faites du scripting ou si vous le préférez.
  • Les liens symboliques réseau nécessitent l’activation de l’évaluation à distance
  • Pour trouver les liens symboliques, utilisez dir /AL /Sdes scripts PowerShell.

Réflexions finales

Comprendre les liens symboliques peut vous éviter bien des soucis lors du déplacement de fichiers ou de la gestion d’arborescences de dossiers complexes. Ce n’est pas la solution la plus élégante, mais cela vaut vraiment la peine de s’y essayer pour quiconque travaille avec de gros volumes de données ou des lecteurs réseau. J’espère que cela vous sera utile ; ça l’a été pour certaines configurations que j’ai testées.