You know how you occasionally spend way too much time looking for something that’s a known issue? This was one of those cases. It took the collective energy of my local staff at Harbor Computer Services to pull this solution out of the ether. Because the solution was difficult to locate but easy to resolve, I offer this blog post in the hope that others might find it and be able to resolve this issue quickly.
The issue was reported by one user and the complaint was that he could not see all of the files in a folder. For example, in the folder list below the user was unable to see the 3 files that are circled. This happened to him in several different folders. It is one of the more bizarre problems I’ve seen in my career.
- User is able to log onto another computer and see all of the files. So the permissions on the folders and shares are correct.
- If another user logs onto this users computer, that user has the same problem.
- If the missing files are copied into another share on the same server the files are still not viewable.
- If the missing files are copied to a share on another server, they are viewable.
- The PC is a Windows XP 64-bit Edition with SP3. The server is Windows Storage Server 2008 Standard Edition.
- Windows XP 32-bit computers in the network have no problem viewing all files.
After some dead ends, research finally found a kb article that acknowledges the problem.
Windows XP Professional x64 may not see all folders or files shared out by Windows Storage Server 2008
This kb article describes the problem as:
Consider the following scenario. You have a file share located on a system running Windows Storage Server 2008. You have a folder within this file share, and under this folder there are 19 or more subfolders. For example:
When you connect to the share from a system running Windows XP Professional x64, you may not be able to see all of the subfolders in Explorer or from the Command Prompt. This issue only occurs when there are 19 or more subfolders; with less than 19 subfolders, the issue does not occur.
A similar manifestation of this problem occurs with files (not just subfolders). Consider the following scenario. You have a file share located on a system running Windows Storage Server 2008. You have a folder within this file share that contains between 14-36 files. When you attempt to connect to the share from a system running Windows XP Professional x64, you may not be able to see all of the files in Explorer or from the Command Prompt. This issue has only been seen when the folder contains between 14-36 files.
This may seems like an edge case that would be hit be very few people and I think it would be if we weren’t talking about Storage Server. Storage Server is my experience is used by companies with advance files storage structures. The article continues by offering some work a rounds but no real solutions. Fortunately we located a forum thread in TechNet that did offer a permanent and supported solution to this problem.
XP 64bit, vanishing folders from 2008 fileserver
Down toward the end of the thread, from seemingly out of no where a forum user DaveG99 offers this solution with no explanation.
Set HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparametersNoAliasingOnFileSystem to 0 on the Windows Storage 2008 Server.
Indeed DaveG99 is right and this solution works. However, I was not comfortable applying it until I knew that it was supported. His suggestion does after all alter the server. A search then to see what this registry does came up with this:
Windows Storage Server 2008 R2 OEM Deployment Guide
To optimize the performance of a storage appliance as a file server, you should set two registry keys:
· NtfsDisable8dot3NameCreation: This key controls the creation of a short file name that follows the 8.3 naming convention. Setting this value to 1 disables the creation of a shortened name.
· NoAliasingOnFileSystem: This key controls file system aliasing. If the value of this key is set to 1, then this feature is disabled.
These registry keys increase the performance of the server when it is used as a storage appliance.
Aliasing is a feature that is included with Windows Server 2003. This feature lets multiple long file names or multiple short file names refer to the same file (Used for mounting- and reparse-points). Disabling file system aliasing can improve performance as it will increase the available cache size for the server service:
[HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services LanmanServer Parameters]
NoAliasingOnFileSystem = 1 (Default = 0)
Now in this documentation there’s really no indication why this helps Windows XP 64-bit computers to see all files in a folder. But we do know that the solution is a supported one, even if it is supported for another reason. The solution can be safely applied to resolve the problem at hand.