Skip to main content

Windows – Déplacer Program Files et le dossier Users

Pour une raison ou pour une autre, on peut avoir besoin de déplacer le dossier Program Files et le dossier Utilisateurs de Windows, par exemple sur une autre partition. Comme vous l’imaginez, cette opération peut être assez délicate, vu que des informations essentielles se trouvent dans des dossiers. C’est pourquoi cette opération peut être réalisé uniquement lors de l’installation de Windows, et pas après. Ne cherchez pas plus loin !

Pour commencer, sur l’écran de découpage de votre disque à l’installation de Windows, pensez à bien formater la partition sur laquelle vous souhaitez déplacer les dossiers. C’est important ! Ensuite, toute la magie se produit à ce moment de l’installation :

Installation de Windows - Création d'utilisateur

Ne saisissez pas de nom d’utilisateur, mais appuyez sur Shift+F10. Cela aura pour effet de faire apparaître une console, afin de réaliser toutes nos opérations !

Déplacer le dossier Utilisateurs

Commencez par taper les trois commandes suivantes :

robocopy /copyall /mir /xj C:\Users D:\Users
rmdir C:\Users /S /Q
mklink C:\Users D:\Users /J

La première commande a pour but de copier le dossier vers une autre partition (n’oubliez pas de changer le D par la lettre du lecteur sur lequel vous souhaitez déplacer le dossier). robocopy est un utilitaire particulier de Windows, qui fera une « vraie » copie, en conservant les attributs des répertoires, leurs droits, leur architecture, etc.

La deuxième commande supprime tout simplement le répertoire d’origine.

La dernière commande fait un lien symbolique (mklink) entre l’ancien répertoire et le nouveau répertoire. C’est à dire que désormais, chaque fois que Windows (ou un programme) viendra taper dans C:\Users, le lien symbolique l’emmènera directement dans D:\Users.

Il nous reste une dernière opération qui s’effectuera dans le registre ; tapez la commande regedit. Dépliez l’arborescence suivante :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList

Modifiez les clés suivantes :

Default => D:\Users\Default
ProfilesDirectory => D:\Users
Public => D:\Users\Public

Redémarrez votre machine, puis terminez l’installation en créant un utilisateur ! Et surtout, ne supprimez pas Users de votre disque C:\. Le dossier n’est plus là, il s’agit seulement du lien symbolique. Si vous le supprimez, Windows retrouvera difficilement ses petits !

Déplacer le dossier Program Files

Attention : cette manip est à priori incompatible avec Internet Explorer. Si vous souhaitez utiliser ce navigateur (et donc le mettre à jour vers ses dernières versions), ne déplacez pas le dossier Program Files. Merci à Lucien des commentaires d’avoir fait remonter ce problème.

Bref, l’opération est similaire :

robocopy "C:\Program Files (x86)" "D:\Program Files (x86)" /E /COPYALL /XJ
robocopy "C:\Program Files" "D:\Program Files" /E /COPYALL /XJ
rmdir "C:\Program Files (x86)" /S /Q
rmdir "C:\Program Files" /S /Q
mklink "C:\Program Files (x86)" "D:\Program Files (x86)" /J
mklink "C:\Program Files" "D:\Program Files" /J

N’oubliez pas les guillemets, essentiels car les noms de dossiers contiennent des espaces. Là encore, vous penserez à ne PAS supprimer les liens symboliques qui se trouvent sur votre partition C. Passons maintenant à la phase de registre avec regedit :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

Changez toutes les clés faisant appel à la lettre C (disque sur lequel vous avez installé Windows) en mettant D à la place. Il y en a une demi-douzaine. Maintenant, l’astuce consiste à effectuer cette même opération (modification de 6 clés de registre) dans l’arborescence suivante, pour les versions 64 bits de Windows (ce qui est probablement votre cas) :

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion

Et voilà, c’est terminé ! Perso, ça marche impec pour moi. La raison de vouloir déplacer le dossier Program Files ? Le PC sur lequel j’ai fait ces manips n’a été livré qu’avec un SSD de 20 Go, et un disque-dur regular de 1 To. Sérieux, sont cons ou quoi ces fabriquants ? Je fais quoi moi, avec 20 Go à part du SSD caching ?

Faites gaffe quand vous achetez un PC : le SSD, c’est sûrement bien (jamais essayé, du coup), mais il vous faut au moins une cinquantaine de Go pour installer vos programmes, voire plus si vous prévoyez d’installer des jeux.

Note : vous pouvez effectuer la même manipulation avec le dossier ProgramData, même si je ne l’ai jamais faite (je n’en parle pas, du coup). Plus d’infos dans les liens ci-dessous.

Sources : MyDigitalLife, IntoWindows

25 réponses à “Windows – Déplacer Program Files et le dossier Users

  1. Super Tuto !!!
    Merci @ Mat pour le script et @ Rémy pour l’amélioration qu’il a fait.
    Par contre petite question, est ce que cela fonctionne pour windows 10 ?
    Merci de vos réponse

  2. Bonjour,

    J’apporte ma contribution au projet 😉

    J’ai modifié le script pour automatiser le déplacement qui permet de déplacer le dossier Users dans un disque et les programmes dans un autre. Ça a peut-être peu d’intérêt mais bon…
    Je déplace aussi le dossier ProgramData et je sais pas si ça vient de la mais j’ai Internet Explorer qui fonctionne.

    Le voici le voila :

    @Echo OFF
    SET /p EmplacementUsers=Emplacement du futur dossier utilisateur (Ex. D:) :
    SET /p EmplacementProgram=Emplacement du futur dossier Programmes (Ex. D:) :
    echo Nouvel emplacement Utilisateurs : %EmplacementUsers%
    echo Nouvel emplacement Programmes : %EmplacementProgram%
    pause

    REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v Default /t REG_EXPAND_SZ /d %EmplacementUsers%\Users\Default /f
    REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory /t REG_EXPAND_SZ /d %EmplacementUsers%\Users /f
    REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v Public /t REG_EXPAND_SZ /d %EmplacementUsers%\Users\Public /f

    robocopy /copyall /mir /xj C:\Users %EmplacementUsers%\Users
    rmdir C:\Users /S /Q
    mklink C:\Users %EmplacementUsers%\Users /J

    REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProgramData /t REG_EXPAND_SZ /d %EmplacementProgram%\ProgramData /f

    robocopy "C:\ProgramData" "%EmplacementProgram%\ProgramData" /E /COPYALL /XJ
    rmdir "C:\ProgramData" /S /Q
    mklink /J "C:\ProgramData" "%EmplacementProgram%\ProgramData

    robocopy "C:\Program Files (x86)" "%EmplacementProgram%\Program Files (x86)" /E /COPYALL /XJ
    robocopy "C:\Program Files" "%EmplacementProgram%\Program Files" /E /COPYALL /XJ
    rmdir "C:\Program Files (x86)" /S /Q
    rmdir "C:\Program Files" /S /Q
    mklink "C:\Program Files (x86)" "%EmplacementProgram%\Program Files (x86)" /J
    mklink "C:\Program Files" "%EmplacementProgram%\Program Files" /J

    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir" /t REG_SZ /d "%EmplacementProgram%\Program Files\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir (x86)" /t REG_SZ /d "%EmplacementProgram%\Program Files (x86)\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "CommonW6432Dir" /t REG_SZ /d "%EmplacementProgram%\Program Files\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir" /t REG_SZ /d "%EmplacementProgram%\Program Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir (x86)" /t REG_SZ /d "%EmplacementProgram%\Program Files (x86)" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "ProgramW6432Dir" /t REG_SZ /d "%EmplacementProgram%\Program Files" /f

    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir" /t REG_SZ /d "%EmplacementProgram%\Program Files (x86)\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir (x86)" /t REG_SZ /d "%EmplacementProgram%\Program Files (x86)\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "CommonW6432Dir" /t REG_SZ /d "%EmplacementProgram%\Program Files\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir" /t REG_SZ /d "%EmplacementProgram%\Program Files (x86)" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir (x86)" /t REG_SZ /d "%EmplacementProgram%\Program Files (x86)" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "ProgramW6432Dir" /t REG_SZ /d "%EmplacementProgram%\Program Files" /f

    Par contre petite question…
    Lors de l’évaluation de windows m’indique le HDD principal sur le disque 1To (D:) alors que le système est bien installé sur le SSD (C:)

    Voici un screen de l’évaluation : http://www.casimages.com/i/150228063016131301.png
    Et de la gestion de disques : http://www.casimages.com/i/150228063016989654.png
    J’ai procédé aussi après l’install aux améliorations SSD (http://www.pcastuces.com/pratique/windows/7/optimiser_ssd/page1.htm)

    Qqln à t’il une idée pour que windows face son test sur le SSD et améliorer ma note :/

    Merci d’avance !

    Rémy

    1. Salut et merci beaucoup pour ta contribution ! En effet, c’est étrange qu’il considère le disque-dur sur lequel n’est pas installé Windows comme disque principal. Toutefois, l’indice de performance Windows ne sert pas à grand chose ; du moment que tu sais que tu as un SSD performant, même si l’indice n’est pas aussi haut qu’espéré, ça ne te gênera pas pour tout ce que tu souhaites faire de ton PC ☺

    2. Il y a un truc que je ne comprend pas. Quand vous faites un mklink /J, il y a une jonction entre répertoire. Si bien que si vous installez un logiciel sur D: il s’installe aussi sur C: . Je pense qu’il faudrait faire un mklink /D. Ou alors y a une chose qui m’échappe.

      1. Si on met /D pour le dossier « Users », on a plus d’acces a la session.
        De plus, les programmes et les documents se copient sur C et D. Pourquoi ?

  3. Salut Benji,
    je reviens sur ce tuto, ne sachant comment te contacter en mp.
    Voilà l’affaire : après la manip effectuée, sous W7 HP 64 bits SP, les liens symboliques créés sur le disque SSD (C:/) prennent autant de place que les dossier déplacés.
    Ils ont pourtant bien la petite flèche typiques des raccourcis.
    Du coup, mon problème de place sur le SSD reste entier.
    (si je pouvais, je joindrais un snapshoot).

    1. Bonjour Lucien, j’avoue ne pas trop savoir quoi te répondre, vu qu’à l’époque où j’avais fait la manip, cela avait bien fonctionné, et qu’aucun utilisateur ne semble avoir le même problème que toi. As-tu posé ta question sur les forums d’où émane cette astuce (liens en bas de l’article), plus spécialisés que moi en admin Windows ?

  4. Merci Benji pour cette astuce fort utile que je me suis empressé d’utiliser.

    Néanmoins, elle présente un inconvénient de taille : si on applique ta solution, il n’est plus possible d’évoluer vers Internet Explorer 11. L’installation se bloque et, selon le MVP que j’ai consulté, cela provient de la manip effectuée suivant tes indications.
    Je cite :
    > Quand à IE11-64bits, habituellement dans C:\Program Files\Internet Explorer, il est peut-être plus susceptible que les autres navigateurs de ne pas être dans le C, avec son copain C:\Windows. Idem pour IE11-32bits, (navigateur par défaut) normalement dans le dossier C:\Program Files (x86)\Internet Explorer. La base de registre, n’a peut-être pas « suivi » le film ? Source : « Georges News ».

    Voilà voilou.

    1. Merci pour ce retour ! J’ai ajouté une note dans l’article. Si ton collègue trouve une solution, n’hésite pas à la poster 🙂

  5. Nickel !!
    ça marche nickel vraiment !
    Si ça intéresse du monde, me suis fait un petit batch à executer lors de la phase OOBE (Configuration windows, création utilisateur etc…)
    Il faut toujours faire un SHIFT + F10 et appeler le fichier, celui-ci vous demande la lettre du futur lecteur et hop.. le tour est joué. Vous pouvez créer un fichier bat pour mettre le texte dedans et l’appeler depuis la clé USB d’installation par ex…

    Voici le batch vite fait :

    @Echo OFF
    SET /p EmplacementUsers=Emplacement du future dossier (Ex. D:) :
    echo Nouvel emplacement : %EmplacementUsers%
    pause

    REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v Default /t REG_EXPAND_SZ /d %EmplacementUsers%\Users\Default /f
    REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory /t REG_EXPAND_SZ /d %EmplacementUsers%\Users /f
    REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /v Public /t REG_EXPAND_SZ /d %EmplacementUsers%\Users\Public /f

    robocopy /copyall /mir /xj C:\Users %EmplacementUsers%\Users
    rmdir C:\Users /S /Q
    mklink C:\Users %EmplacementUsers%\Users /J

    robocopy "C:\Program Files (x86)" "%EmplacementUsers%\Program Files (x86)" /E /COPYALL /XJ
    robocopy "C:\Program Files" "%EmplacementUsers%\Program Files" /E /COPYALL /XJ
    rmdir "C:\Program Files (x86)" /S /Q
    rmdir "C:\Program Files" /S /Q
    mklink "C:\Program Files (x86)" "%EmplacementUsers%\Program Files (x86)" /J
    mklink "C:\Program Files" "%EmplacementUsers%\Program Files" /J

    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir" /t REG_SZ /d "%EmplacementUsers%\Program Files\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir (x86)" /t REG_SZ /d "%EmplacementUsers%\Program Files (x86)\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "CommonW6432Dir" /t REG_SZ /d "%EmplacementUsers%\Program Files\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir" /t REG_SZ /d "%EmplacementUsers%\Program Files" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir (x86)" /t REG_SZ /d "%EmplacementUsers%\Program Files (x86)" /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v "ProgramW6432Dir" /t REG_SZ /d "%EmplacementUsers%\Program Files" /f

    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir" /t REG_SZ /d "%EmplacementUsers%\Program Files (x86)\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "CommonFilesDir (x86)" /t REG_SZ /d "%EmplacementUsers%\Program Files (x86)\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "CommonW6432Dir" /t REG_SZ /d "%EmplacementUsers%\Program Files\Common Files" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir" /t REG_SZ /d "%EmplacementUsers%\Program Files (x86)" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "ProgramFilesDir (x86)" /t REG_SZ /d "%EmplacementUsers%\Program Files (x86)" /f
    REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion" /v "ProgramW6432Dir" /t REG_SZ /d "%EmplacementUsers%\Program Files" /f

  6. Bonjour,
    Excellente info !!! Je cherchais justement à déplacer ces répertoires vers un disque SATA pour économiser mon disque SSD. Merci pour le partage d’expérience.

    Cordialement,
    Skipp

  7. il n’y aurait pas une erreur dans le paragraphe déplacer program files
    mklink « C:\Program Files » « D:\Program Files (x86) » /J
    c’est pas plus tôt mklink « C:\Program Files » « D:\Program Files » /J

    ?

  8. Bonjour,
    merci pour le tuto.
    J’ai cependant une petite question, l’histoire de robocopy, faut pas le faire avec les program files x64 aussi quand on est dans le cas de windows 7 64 bits ? Ou bien ce n’est pas nécessaire car il n’y a pas de logiciels 64 bits installés par windows et donc l’édition des clés de registres permet de donner le bon chemin, pour plus tard ?

    Edit : Manip’ faite, tout marche impeccable, mais un dossier « Programmes » et « ProgramData » restent dans C: (donc les programmes 64 bits) tandis que « Program Files (x86) » et son dossier data sont bien sur le D:. Y a-t-il un moyen d’y remédier ?

    1. Je viens de me rendre compte que j’ai fait une erreur :\ elle n’a choqué personne mais elle est bien là : dans la rubrique « Déplacer le dossier Program Files », j’ai mis deux fois les instructions concernant le 32 bits (x86). Effectivement, il faut qu’il y ait un déplacement du dossier « Program Files » tout court (le 64 bits). Je l’ai corrigé dans l’article. Pour « ProgramData » par contre, je ne sais pas, je n’avais pas effctué de manipulation sur ce dossier.

      Malheureusement, je n’ai peur que tu doives recommencer l’installation, si tu l’as déjà faite… Enfin, tu peux toujours essayer les manipulations maintenant, mais je crains que les changements ne soient mal effectués.

  9. Bonjour,
    merci pour le tuto.
    J’ai cependant une petite question, l’histoire de robocopy, faut pas le faire avec les program files x64 aussi quand on est dans le cas de windows 7 64 bits ? Ou bien ce n’est pas nécessaire car il n’y a pas de logiciels 64 bits installés par windows et donc l’édition des clés de registres permet de donner le bon chemin, pour plus tard ?

  10. Oui merci bien Benji1000, c’est top de pouvoir partitionner à l’install, bonne méthode bien expliquée, et sans fautes, bravo !

  11. un grand merci pour cette manip.
    j’en est aisselle plusieurs est sais la seule qui marche correctement sans probleme.
    merci beaucoup

  12. Merci pour la méthode, je vais devoir la testé car je n’avais pas touvé la méthode pour le faire à l’installation, mais sachez qu’il est malgré tout possible de le faire après l’installation mais la procédure est un peu plus complexe (des clefs de registres hexa pouvant être à modifier).
    Pour infomation les principales clefs de registres ‘ASCII’ sont:
    * [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion]
    – CommonFilesDir: Chemin des fichiers (64bits) partagés par plusieurs programmes
    – CommonFilesDir (x86): Chemin des fichiers (32bits) partagés par plusieurs programmes
    – CommonW6432Dir: Chemin des fichiers (32bits) partagés par plusieurs programmes (64bits)
    – ProgramFilesDir: Chemin des fichiers de programme (64bits)
    – ProgramFilesDir (x86): Chemin des fichiers de programme (32bits)
    – ProgramW6432Dir: Chemin des fichiers de programme (64bits) utilisant des fichiers (32bits)
    *[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
    – CommonFilesDir: Chemin des fichiers (64bits) partagés par plusieurs programmes
    – CommonFilesDir (x86): Chemin des fichiers (32bits) partagés par plusieurs programmes
    – CommonW6432Dir: Chemin des fichiers (32bits) partagés par plusieurs programmes (64bits)
    – ProgramFilesDir: Chemin des fichiers de programme (64bits)
    – ProgramFilesDir (x86): Chemin des fichiers de programme (32bits)
    – ProgramW6432Dir: Chemin des fichiers de programme (64bits) utilisant des fichiers (32bits)

    Pour la modification après installation, il semble rester une limitation: les mises à jour cumulative de sécurité pour IE9 sous Windows 7 64bits semble échouer si le nouveau chemin n’est pas sur une partition avec un lien comme indiqué.

    JaI

    1. Ça ne risque pas de poser de problème pour les programmes installés entre temps (soit par Windows, soit par l’utilisateur), le fait de gérer deux répertoire différents ? Perso J’aime bien l’astuce qui permet de le faire à l’install, avant tout paramétrage (comme ça on sait que c’est propre et bien fait), mais bon, si ça marche et si ça peut dépanner de le faire après 🙂

Répondre à Rémy Annuler la réponse

Votre adresse de messagerie ne sera pas publiée.

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