%3F.png)
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~1
gibt es Probleme bei Installationen, bei denen das Laufwerk geklont wurde, sodass die Verzeichnisse zurückkopiert wurden. Wenn beispielsweise ProgramData
zuerst auf die Festplatte kopiert wird, wird es benannt PROGRA~1
und Program Files
heißt PROGRA~2
.
Es besteht die Möglichkeit, die Skripte vorerst weiterlaufen zu lassen:
Sie könnten eineVerzeichnisknotenvon PROGRA~1
bis 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:
- Starte den Computer neu
- beim Booten im abgesicherten Modus mit Eingabeaufforderung starten (F8 auf meinem Computer)
- Anmeldung
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.