16/12/2024

AstucesSystème

Comment créer un lien symbolique sous Windows ?

I. Présentation

Pour utiliser un dossier distant tel un dossier local sans passer par un lecteur réseau ou un simple raccourci, on peut aussi créer un lien symbolique (symlink) qui permettra de faire le lien entre le répertoire local et le répertoire distant en toute transparence. Pour certaines applications, cette manipulation peut-être utile si l'on souhaite utiliser un répertoire partagé en guise de répertoire "local".

Dans ce tutoriel, nous verrons comment créer un lien symbolique sous Windows avec la commande mklink.

II. La commande mklink

La commande mklink doit être utilisée sous Windows pour créer un lien symbolique, voici d'ailleurs quelques infos sur sa syntaxe :

C:\WINDOWS\system32>mklink
Crée un lien symbolique.

MKLINK [[/D] | [/H] | [/J]] Lien Cible

        /D      Crée un lien symbolique vers un répertoire. Par défaut,
                il s'agit d'un lien symbolique vers un fichier.
        /H      Crée un lien physique à la place d'un lien symbolique.
        /J      Crée une jonction de répertoires.
        Lien    Spécifie le nom du nouveau lien symbolique.
        Cible   Spécifie le chemin d'accès (relatif ou absolu) auquel
                le nouveau lien fait référence.

Cette commande n'est pas reconnue dans une console PowerShell, elle l'est uniquement dans une invite de commandes DOS. Pour cause, il n'y a pas d'alias créé pour cette commande dans PowerShell, par défaut. Pour  ceux qui souhaite le faire directement en PowerShell, il n'y a pas encore de commandlet natif, mais vous pouvez regarder du côté de la fonction New-SymLink (en savoir plus sur New-SymLink).

Sans plus attendre nous allons voir ensemble un exemple d'utilisation.

III. Création d'un lien symbolique sous Windows

Ouvrez une invite de commande en tant qu'administrateur. Pour créer un lien symbolique "C:\Users\Florian\NAS-Informatique" qui cible "\\192.168.1.150\Informatique", qui est en fait un répertoire partagé sur un NAS, il faudra utiliser la commande suivante :

mklink /D C:\Users\Florian\NAS-Informatique \\192.168.1.150\Informatique

Ce qui revient à faire :

mklink /D <chemin-du-lien> <chemin-de-la-cible>

On peut voir que la commande réussie :

windows-mklink-1

Si l'on va dans "C:\Users\Florian", il y a bien un raccourci créé avec le nom "NAS-Informatique" et dans ses propriétés on voit que ça cible le répertoire sur le NAS. Vous remarquerez que la cible est grisée, elle ne peut pas être changée comme pour un simple raccourci, c'est une particularité d'un lien symbolique.

windows-mklink-2

Si je vais dans le répertoire, le contenu du NAS s'affiche alors que je suis dans le répertoire "C:\Utilisateurs\Florian\NAS-Informatique" d'après l'explorateur, c'est là tout l'intérêt d'un lien symbolique. Avec un raccourci classique, j'aurais été redirigé vers le répertoire du NAS directement.

windows-mklink-3

Vous êtes désormais en mesure de créer des liens symboliques sous Windows, mais avant de finir, faisons le point sur les différences entre un raccourci et un lien symbolique :

  • La cible d'un lien symbolique ne peut pas être changée (il faut le recréer), contrairement à un raccourci
  • L'accès aux données s'effectue en toute transparence comme s'il s'agit de données locales
  • L'attribut associé au raccourci du lien symbolique est "<SYMLINKD>" et non "<DIR>".
author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

10 commentaires sur “Comment créer un lien symbolique sous Windows ?

  • Bonjour,

    merci pour l’article.
    Quid de l’authentification si le lien est un partage réseau?

    Merci

    Répondre
    • Bonjour,

      Même question que Igloox.

      Merci pour vos articles

      Répondre
  • Bonjour
    Je cherche a recuperer de l’espace disque sur C . Le repertoire AppData prend beaucoup d’espace
    J’ai de la place sur D
    je tape

    C:\WINDOWS\system32>mklink /J C:\users\jean\AppData D:\AppData

    Et j’ai comme retour:
    Impossible de créer un fichier déjà existant.

    J’ai tente l’operation en creant le repertoire AppData dans D et aussi sans le creer . Meme resultat.

    A l’aide§ Merci

    Répondre
    • Bonjour Jean Martinie,
      Tu auras sans doute trouvé la solution, mais je viens d’avoir le même problème aussi je poste ma solution en réponse.

      Pour que le lien puisse exister il ne faut avoir de repertoire du même nom. Dans ton cas AppData dans c:\…jean\
      si tu renommes le repertoire AppData en AppDataTOTO et que tu relances la commande alors çà marchera. Tu peux aussi supprimer AppData, mais çà me parait risqué.

      Répondre
  • Bonjour,
    J’ai réalisé cette opération hier entre C et un disque dur externe pour y placer mes sauvegardes iphone d’iTunes (pas assez d’espace sur C pour les y mettre)
    Cela a très bien marché.

    Par contre je n’ai pas assez réfléchi avant de faire cette démarche et me suis trompé de disque dur externe qui risque d’être lui aussi rapidement saturé.
    Je souhaiterais modifier donc lien de jonction pour changer le disque dur de destination.

    À juste titre, vous écrivez dans cet article qu’il faut recréer le lien de jonction et non pas Le changer.
    Comment puis je faire pour le recréer?
    Sachant que le lien virtuel de jonction depuis « C:\Users\AppData\Roaming\AppleComputer\MobileSync\Backup » a été fait hier vers « H:\Sauvegardes iPhone\Backup », et que je souhaite désormais Le faire vers « G:\Sauvegardes iPhone\Backup »

    J’ai installé Les anciennes sauvegardes iPhone qui étaient sur C sur les 2 disques dur H et G en entendant de pouvoir recréer le lien vers G, mais je ne parviens pas à Le recréer.

    Merci pour vos conseils si vous le pouvez.

    Cordialement.

    Philippe

    Répondre
    • Bonjour Philippe,

      Normalement, lors de la création d’un lien symbolique, un raccourci (« redirecteur ») se crée à l’endroit de la source afin de pointer vers la destination est créer le lien. Vous devez supprimer ce raccourci pour supprimer le lien, et ensuite vous pourrez le recréer.

      Cordialement,
      Florian

      Répondre
  • Bonjour,

    Je veux que le dossier C:\ProgramData se retrouve sur D:\ProgramData sans perturber les programmes qu’il contient.

    Pouvez-vous me détailler la commande à lancer sous Windows 10 ??
    D’avance merci

    Répondre
    • Bonjour,

      La méthode du lien symbolique ne pourra pas être utilisée sans perturber les programmes. Par ailleurs, Microsoft déconseille de déplacer le dossier ProgramData en précisant que ça va fortement perturber le fonctionnement des applications du Windows Store.

      Pour créer un lien symbolique, ça implique de copier les données du dossier vers son équivalent dans D:, ensuite supprimer le dossier source pour créer le lien symbolique à la place. Il me semble aussi qu’il faudra modifier le registre pour adapter les chemins par défaut des programmes et indiquer que c’est désormais dans D:

      Bon courage
      Florian

      Répondre
  • Bonjour Florian,

    Un grand merci pour cet article qui m’a été très utile. Très bien expliqué.

    Répondre
  • Ce serait sympa d’indiquer dans le même article comment SUPPRIMER le lien symbolyque 😉

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.