We annually have to migrate a large number of files (typically around half a million at a time) between servers. Every year I find the task painstaking, not for a lack of knowledge of Command Prompt and PowerShell, but because of the issues we always come up against. These fall into three main groups, as follows:
- Non-enforecement of the 260 character file path limit by Windows at write. This is a well known flaw in Windows. An app can (under certain circumstances) write files with paths longer than 260 characters, but as this is invalid, these files cannot be accessed or processed without first using the 8.3 filename method and individually renaming folders and files to bring the path down to less that 260 chars.
- Non-enforcement of filename validation by Windows at write. This one, like the first, is an old Windows design flaw that's probably been around for as long as NT. Also like the first, it's down to Windows not performing basic validation when a file is written, only this time the problem is files being written with invalid filename characters in their names.
- Randomly dropped files during copy. When I say random, I mean it. The copy process is running under domain admin and, where applicable, elevated privileges. Copying a folder with thousands of files, each of which the SysAdmin has full permission to, and a random scattering of files and folders can be missed. Nothing marks these items out as unusual. A second attempt to copy can be fully successful or miss a different set of random files. Anyway, I think this problem relates to copying files between 2003 and 2008R2 only, though I'm not sure.
I generally use the Command Prompt XCopy method, sometimes with ForFilesfor batch file processing. A typical command might be XCOPY D:\StaffHomeDirectories\*.* z:\StaffHomeDirectories /E /C /H /O - you know, the usual thing.
Anyway, I've more-or-less given up on using Windows tools for doing this as I always run into the same kind of problems. Does anyone use any good 3rd party tools for doing this kind of thing, which solve the above problems ? Anything you would recommend from experience ? Note that using our backup system is not desireable as, although it's a reliable method, it's also painfully slow.
We are running Windows Server 2003 SP2 Standard x86 and Windows Server 2008 R2 SP1 Standard x64.
-- huddie