10 votes

Comment forcer la génération de noms courts (8dot3) ?

J'ai un problème avec les noms courts de Windows. Parfois, les noms courts ne semblent pas être générés pour "Program Files" et "Program Files (x86)".

J'ai vérifié que la génération de noms courts est activée avec fsutil behavior query disable8dot3 C: ce qui m'indique que le paramètre général du système est 2 (par volume) et la valeur locale est 0 (créer des noms 8dot3).

Il devrait ressembler à peu près à ceci (notez qu'il s'agit d'une copie 32 bits en allemand) :

C:\>dir /a /x

 Verzeichnis von C:\

21.12.2011  00:17    <DIR>                       $Recycle.Bin
14.07.2009  05:53    <VERBINDUNG>   DOCUME~1     Documents and Settings [C:\Users]
09.01.2011  15:35    <VERBINDUNG>   DOKUME~1     Dokumente und Einstellungen [C:Users]
27.11.2013  15:11     2.147.016.704              pagefile.sys
14.07.2009  03:37    <DIR>                       PerfLogs
26.11.2013  17:31    <DIR>          PROGRA~1     Program Files
08.11.2013  21:58    <DIR>          PROGRA~2     ProgramData
09.01.2011  15:35    <VERBINDUNG>   PROGRA~3     Programme [C:\Program Files]
09.01.2011  15:35    <DIR>                       Recovery
26.11.2013  17:40    <DIR>          SYSTEM~1     System Volume Information
23.01.2011  15:00    <DIR>                       Temp
11.01.2011  20:56    <DIR>                       Users
08.11.2013  14:53    <DIR>                       Windows

Cependant, sur une autre machine (copie 64 bits), cela ressemble à ceci C:>dir /a /x

 Verzeichnis von C:\

21.12.2011  00:17    <DIR>                       $Recycle.Bin
14.07.2009  05:53    <VERBINDUNG>   DOCUME~1     Documents and Settings [C:\Users]
09.01.2011  15:35    <VERBINDUNG>   DOKUME~1     Dokumente und Einstellungen [C:Users]
27.11.2013  15:11     2.147.016.704              pagefile.sys
14.07.2009  03:37    <DIR>                       PerfLogs
26.11.2013  17:31    <DIR>                       Program Files
26.11.2013  17:31    <DIR>                       Program Files (x86)
08.11.2013  21:58    <DIR>                       ProgramData
09.01.2011  15:35    <DIR>                       Recovery
26.11.2013  17:40    <DIR>          SYSTEM~1     System Volume Information
23.01.2011  15:00    <DIR>                       Temp
11.01.2011  20:56    <DIR>                       Users
08.11.2013  14:53    <DIR>                       Windows

Comme vous l'avez peut-être remarqué, les noms courts manquent pour les dossiers de programmes.

La question est maintenant de savoir comment les générer, car j'ai besoin de ces noms courts pour quelques anciens scripts. J'ai essayé avec fsutil file setshortname "Program Files" "PROGRA~1" mais cela me donne juste Access denied. .

9voto

Muhammad Taqi Points 885

Pour définir des noms courts (8dot3) pour les fichiers du programme, procédez comme suit :

  1. Redémarrer l'ordinateur
  2. Au démarrage, démarrer en mode sécurisé avec l'invite cmd (F8 sur mon ordinateur).
  3. Connectez-vous
  4. à partir de l'invite cmd, entrez les cmds suivantes

    fsutil 8dot3name query
    fsutil behavior set disable8dot3 0
    fsutil file setshortname "Program Files" PROGRA~1
    dir /X

Vous devriez maintenant voir le nom court défini pour les fichiers du programme. Si vous le souhaitez, vous pouvez remettre le comportement de 8dot3name au paramètre original qui a été retourné par la requête cmd.

6voto

Rik Points 12809

Comme je l'ai dit dans mon commentaire... La seule façon que je connaisse pour Windows de re-générer le nom court est de copier le répertoire et de supprimer l'original. (pas faisable pour le répertoire "Program Files").

Il serait préférable de modifier le script pour utiliser des noms de fichiers et de dossiers longs. Si le script utilise des noms de fichiers et de dossiers longs. PROGRA~1 il aura des problèmes avec les installations où le disque a été cloné de telle sorte que les répertoires ont été recopiés. Par exemple, si ProgramData est copié en premier sur le disque, il sera nommé PROGRA~1 y Program Files sera nommé PROGRA~2 .

Il existe une option pour que les scripts continuent de fonctionner pour le moment. :

Vous pourriez créer un annuaire-jonction de PROGRA~1 a C:\Program Files . De cette façon, les scripts continuent de fonctionner et vous avez le temps de les modifier.

mklink /J "C:\PROGRA~1" "C:\Program Files"

Sortie de mklink /? :

Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X