Managing User Profiles Your Way

Better methods for managing user profiles en masse. Plus, an SBS problem.

Last week's column contained a question about moving 70+ profiles from one terminal server to another. I suggested a combination of xcopy /o and a Registry hack for the ProfileList entry, but I asked for better ideas. I got quite a few.

Several respondents suggested alternatives to the basic copy-and-hack formula that I used. Michael G. likes Robocopy from the Windows 2003 Resource Kit. Tami F. suggested Ntbackup. Mike H. prefers Secure Copy from Script Logic. Both Salvatore D. and Chad H. use the Copy Profile option in System Properties. Mike M., Bob M., Charlie S., and Antje R., and Michael W. provided different ways to overwrite the default profile on the new server with the correct profile to avoid the Registry hack. Chris J. uses a Registry hack that changes the name of the ProfileList path to point at the copied profile folder after the user logs in.

Michael A. suggests using the Terminal Services profile path entry in Active Directory that points at a share containing the original profile, lets users log on to get a local copy of the profile, then changes the path back to the default. All these suggestions work, but some involve quite a bit of interaction with users. Not that I don't love working directly with users, mind you! Still, there are only so many hours in a day.

Several respondents—Scott K., Jeff S., Jeff B., and Chris B.—are very happy using central, roaming profiles. Several of them point out that deleting the local copy of the roaming profile at logoff prevents building up a huge scrap heap of discarded profiles. I can attest from personal experience to the negative impact of these old profiles. I once had a terminal server refuse to boot because the buildup of profiles had fragmented the boot drive so badly that the Master File Table (MFT) was broken into over 12,000 fragments and would not load during boot time.

Get Help from Bill

Got a Windows or Exchange question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to Bill at mailto:[email protected]; the best questions get answered in this column.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message but submit the requested information for verification purposes.)

Tom K. sent a four-page document describing exactly how to perform a profile transfer. We'll post it on MCPmag.com in this column as soon as we get Tom's permission.

I got a couple of suggestions for third-party products. Doug P. sang praises for the profile migration features in LANDesk and reminded me that SMS and Altiris have similar features. Darshan A. likes Policy Maker by AutoProf and included several cautions against leaving user data on terminal servers. I echo his sentiments.

Jim Y. reminded me about the File and Settings Transfer Wizard in the User State Migration Tool, a utility ideally suited for this kind of work. Marc T. also likes the USMT suite and included this logon script entry to copy the profile. Here's his recipe:

Create a batch file with this line:

scanstate /I miguser.inf /I migsys.ing /I sysfiles.inf
d:\profiledata\%username%

to collect profile data in the d:\profiledata\%username% directories for each user. Just make sure to create these empty directories in advance. Then go to the 2003 server and logged in as an administrator run this batch for each user:

loadstate /I miguser.inf /I migsys.ing /I sysfiles.inf
\\server\profiledata\%username%

Chris W. send along a batch file that he has used to move thousands of profiles. It's very nifty. Here is his recipe:

First, get the list of users and their profile directories from the Documents and Settings folder (or wherever you decided to store the profiles) into a flat file using:

DIR /AD /B > users.txt

Then, in a batch script, use the following batch file, which incorporates a FOR loop and the TSPROF utility:

net use \\old\location X:
net use \\new\location Z:

FOR /F %%d (users.txt) DO XCOPY /E /I /O X:\%%d Z:\%%d & TSPROF /UPDATE /DOMAIN:ACME /PROFILE:\\new\location\%%d %%d

net use X: /DELETE
net use Z: /DELETE

Finally, I really appreciated the suggestion from Stuart M. and Marty C., who pointed out that Microsoft has just released a new Copy Profile utility that does exactly what the reader wants to do. The Copy Profile utility is available as a free download from www.microsoft.com/downloads/
details.aspx?FamilyID=ed182a96-f3a6-4fdd-862b-1ae03dc130c1&DisplayLang=en
.

Thanks to everyone who sent ideas and suggestions. If you sent something and you don't see your name, I offer my apologies. Send me an e-mail and I'll make it up to you.

SBS Patch
I've gotten several questions from Small Business Server 2003 users concerning the frequent appearance of Event 8331 from service MSExchangeAL with the following description:

The service threw an unexpected exception which was caught at f:\titanium\dsa\src\lra\abv_dg\lservagent.cpp(4511)

(Path and file name may differ.)

This error appears to be benign, but just in case you don't want to wait around for Exchange Server 2003 SP1 to get rid of the annoyance, Microsoft has just released a patch for this problem. Call Product Support Services (PSS) and ask for Hotfix 837444.

Keep those questions and suggestions coming in and hope this helps!

About the Author

Contributing Editor Bill Boswell, MCSE, is the principal of Bill Boswell Consulting, Inc. He's the author of Inside Windows Server 2003 and Learning Exchange Server 2003 both from Addison Wesley. Bill is also Redmond magazine's "Windows Insider" columnist and a speaker at MCP Magazine's TechMentor Conferences.

Featured

comments powered by Disqus

Subscribe on YouTube