I’m working on a Windows XP to Windows 7 migration project (I think we’ll all be working on those for the next couple of years!) using a standalone MDT 2010 solution. Overall it’s been working great and the improvements in MDT over each version have resulted in a really impressive deployment platform.

I’ve got a Windows XP REFRESH scenario working and USMT is doing what it’s supposed to do even with hardlinking enabled and working automatically. But it’s not capturing the users’ mapped printers and network drives, or other user settings. My Documents, desktop items, IE favourites, those are all fine.

It took a fair bit of digging but I finally came across this in USMTcapture.log

?2009-09-23 15:16:05, Info                  [0x000000] Downlevel Manifests folder is not present. System component settings will not be gathered.

This Downlevel Manifests folder is pretty important. It’s used to gather all of those user settings from older operating systems like Windows XP.

I poked around and the DlManifests folder was being copied from the deployment share and it looked like the correct folder structure was in place:

usmt

Scanstate.exe just wasn’t finding the DlManifests folder. On a hunch, I ended up modifying the ZTIUserState.wsf script to specifically set the current working directory to “C:\MININT\USMT” and it fixed the problem!

Here’s what I added to ZTIUserState.wsf starting around line 620:

On Error Resume Next
‘*** BEGIN MODIFICATIONS ***
Dim objShell
Dim sCurDir
‘ Save current directory
sCurDir = oFSO.GetAbsolutePathName(“.”)
oLogging.CreateEntry “Saved current directory: ” _

& sCurDir, LogTypeInfo
‘ Set the current directory to sUSMTPath
Set objShell = CreateObject(“WScript.Shell”)
objShell.CurrentDirectory = sUSMTPath
oLogging.CreateEntry “Set current directory: ” _

& sUSMTPath, LogTypeInfo
‘*** END MODIFICATIONS ***

sCmd = “cmd /c “”"”" & sUSMTPath & “\scanstate.exe”" ” _

& sScanStateArgs & ” > nul 2>&1″”"
iRetVal = oUtility.RunWithHeartbeat(sCmd)

‘*** BEGIN MODIFICATIONS ***
‘ Reset current directory to original value
objShell.CurrentDirectory = sCurDir
oLogging.CreateEntry “Set current directory: ” _

& sCurDir, LogTypeInfo
‘*** END MODIFICATIONS ***

UPDATE: I’ve attached the working ZTIUserState.wsf script. Big note, this is a modified MDT 2010 RC script. I’m not sure if there are other changes between RC and RTM. I’ll take a look when I find a spare hour!

UPDATE2: Thanks Johan for confirming below that the fix applies to both MDT 2010 RC and RTM.

UPDATE3: This same fix works for MDT 2010 RC and RTM. The only difference (confirmed by Johan below) is the version number in the script comments. I’ve updated the attachment to include the RTM version of the script.

ZTIUserState

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • LinkedIn
  • Live
  • Twitter