As part of configuring my environment to Best Practice, I run the Best Practice Analyzer (BPA) from the Server Manager.
One thing I want to take a look at today is:
Short file name creation should be disabled
In addition to normal file names, the server is creating short, eight-character file names with a three-character file extension (8.3 file names) for all files.
Creating short file names in addition to the normal, long file names can significantly decrease file server performance.
Disabled short file name creation unless short file names are required by legacy applications.
So, lets first take a look at the actual state of short file names on my system drive, using this the FSUTIL utility:
FSUTIL.EXE 8dot3name Query c:
Ok, so we just confirme it is indeed enabled, but lets see what it acutally tells us, and how it works:
- First it tell us that 8dot3 is enabled on our system drive (
- Secondly we are notified that the default system setting is individual setting pr. drive
- What it doesn’t tell us, but what “we” know is, that the default for new volumes is to disable short names
Lets use the FSUTIL utility to disable short name creation on our systems drive.
What the above command does, is only disabling the 8.3 creation on the C drive.
If we want to disable the short file creation on all drives:
To do so, we need to change the default state to 1 as well. It’s actually the same comman, just minus the drive letter, like so:
FSUTIL.exe 8dot3name set 1
What it does, is to actually change a registry setting at:
HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name NtfsDisable8dot3NameCreation -Value 1
This is quiet usefull information if we want to set up a GPO to make this change on all new servers or something similar.
Now, lets remove any existing short filenames. Be sure you don’t have any legacy software or have used old installers which are dependant upon short names.
|s||Specifies that the operation should be applied to the subdirectories of the specified DirectoryPath.|
|t||Specifies that the removal of 8dot3 file names should be run in test mode. All operations except the actual removal of the 8dot3 file names are performed. You can use test mode to discover which registry keys point to files that use the 8dot3 file names.|
|f||Specifies that all files that are located in the specified DirectoryPath will have the 8dot3 file names removed even if there are registry keys that point to files using the 8dot3 file name. In this case, the operation removes the 8dot3 file names, but does not modify any registry keys that point to the files that are using the 8dot3 file names.|
|Source on TechNet: Fsutil 8dot3name|
Armed with our new knowledge we need to strup the 8dot3 file names from our volume, and afterwards clean up our registry.
Note: you might need to use the /f to force FSUTIL to run. Seems the paramenters are case sensitive in some cases…