Wie erzwinge ich die Generierung von Kurznamen (8dot3)?

Wie erzwinge ich die Generierung von Kurznamen (8dot3)?

Ich habe ein Problem mit Windows-Kurznamen. Manchmal scheinen die Kurznamen für „Programme“ und „Programme (x86)“ nicht generiert zu werden.

Ich habe überprüft, dass die Generierung von Kurznamen aktiviert ist. fsutil behavior query disable8dot3 C:Dies sagt mir, dass die systemweite Einstellung 2(pro Datenträger) und der lokale Wert 0(8dot3-Namen erstellen) lautet.

Es sollte ungefähr so ​​aussehen (beachten Sie, dass es sich um eine deutsche 32-Bit-Kopie handelt):

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

Auf einem anderen Computer (64-Bit-Kopie) sieht dies jedoch wie folgt aus: 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

Wie Sie vielleicht bemerkt haben, fehlen die Kurznamen für die Programmordner.

Die Frage ist nun, wie ich diese generieren kann, da ich diese Kurznamen für einige ältere Skripte benötige. Ich habe es mit versucht fsutil file setshortname "Program Files" "PROGRA~1", aber das gibt mir nur Access denied..

Antwort1

Wie ich in meinem Kommentar sagte: Die einzige mir bekannte Möglichkeit, wie Windows den Kurznamen neu generieren kann, besteht darin, das Verzeichnis zu kopieren und das Original zu löschen. (Nicht machbar für das Verzeichnis „Programme“).

Am besten ändern Sie das Skript so, dass es lange Datei- und Ordnernamen verwendet. Wenn das Skript lange Datei- und Ordnernamen verwendet, PROGRA~1gibt es Probleme bei Installationen, bei denen das Laufwerk geklont wurde, sodass die Verzeichnisse zurückkopiert wurden. Wenn beispielsweise ProgramDatazuerst auf die Festplatte kopiert wird, wird es benannt PROGRA~1und Program Filesheißt PROGRA~2.

Es besteht die Möglichkeit, die Skripte vorerst weiterlaufen zu lassen:

Sie könnten eineVerzeichnisknotenvon PROGRA~1bis C:\Program Files. Auf diese Weise funktionieren die Skripte weiterhin und Sie haben Zeit, sie zu ändern.

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

Ausgabe von 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.

Antwort2

Um Kurznamen (8dot3) für Programmdateien zu definieren, gehen Sie wie folgt vor:

  1. Starte den Computer neu
  2. beim Booten im abgesicherten Modus mit Eingabeaufforderung starten (F8 auf meinem Computer)
  3. Anmeldung
  4. Geben Sie in der Eingabeaufforderung die folgenden Befehle ein

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

Sie sollten jetzt den für Programmdateien definierten Kurznamen sehen. Wenn Sie möchten, setzen Sie das 8dot3name-Verhalten auf die ursprüngliche Einstellung zurück, die vom Abfrage-Cmd zurückgegeben wurde.

verwandte Informationen