Jump to content


  • 0
JWiginton

Anyone know how to get USMT 4.0 to set a hard-link store in ConfMgr 07 SP2?

Question

After a bit of struggle this past week and scrapping my previous VM setup from Microsoft and just building a machine for it, I finally got my test client to migrate from XP to Win 7. Now, I need to know how to set it up so the USMT 4.0 that I downloaded as part of the Windows AIK for Windows 7 RC will hard-link the files on the target computer as part of the migration. I have created a USMT package in my ConfigMgr server and specify it in the task, but it's just not working. I saw this screen shot on the web and I want to know how to get all these options for capturing the user state.

 

http://windowsteamblog.com/cfs-filesystemf...00_5F59B1D0.jpg

 

Any help you all can give me I'd REALLY appreciate it. I've spent hours searching Google with no luck.

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

good question and i'm in the process of investigating this as we speak, so watch this space..it's still beta remember ;-)

 

but in the meantime have you had a look at your scanstate.log and scanstateprogress log files to see what errors they report ?, feel free to post them here.

 

also checkout this brief intro to USMT 4, i'll post more info soon

 

can you tell me what components you have installed so far ?

 

sp2 beta ?

r2 ?

mdt 2010 beta 2 ?

Share this post


Link to post
Share on other sites

  • 0

ok from what I can see the task sequence used in that screenshot was made by hand, i've tried creating new task sequences with SCCM 2007 sp2 beta after creating a new USMT4 package and no change, same goes for adding MDT 2010beta 2 functionality

 

so what video did you grab this screenshot from i'd like to see it

Share this post


Link to post
Share on other sites

  • 0
ok from what I can see the task sequence used in that screenshot was made by hand, i've tried creating new task sequences with SCCM 2007 sp2 beta after creating a new USMT4 package and no change, same goes for adding MDT 2010beta 2 functionality

 

so what video did you grab this screenshot from i'd like to see it

 

I grabbed it from here:

http://windowsteamblog.com/blogs/springboa...ack-2-beta.aspx

 

As far as my setup goes, It's Win2003 Std R2 fully patched, ConfigMgr 07 SP2, WAIK RC for Win 7 and MDT 2010 Beta 2. I was happy that I finally got Windows 7 to deploy, but not so happy that nothing else I wanted to work, worked. No USM happened, the apps didn't load that I specified, nothing. I'm going to rebuild my test environment today with 2008 Std SP2, then install the WAIK 1st, MDT 2010 2nd and ConfMgr last to see if that works.

Share this post


Link to post
Share on other sites

  • 0

did you create the usmt4 packages from the ones supplied in the new waik ?

 

this snippet of info from the interview is interesting but i don't see any way to easily create these hardlink steps without manual work

 

Like you saw at MMS, we do support USMT in ConfigMgr07, including hard-link migration. The Microsoft Deployment Toolkit 2010 Beta 2 extensions for SP2 enable hard-link migration without additional customization, or you can call the User State Migration Tool in a custom task to use the hard-link commands.

 

and this lab is windows server 2008x64sp1, sccm2007sp2 beta R2, mdt 2010 beta 2

 

from one of the videos i posted a link to in the USMT4 brief, I can see they are doing a scanstate using the following args;

 

scanstate.exe c:\store5 /o /c /nocompress /i:miguser.xml /i:migapp.xml /hardlink

 

i'll see if i have the patience to write down the other one (the vbs script, why they don't provide a sample download :_???)

Share this post


Link to post
Share on other sites

  • 0

Thanks Anyweb. I did create a USMT package for it when I tried the install, but it still didn't work. I'm a complete newbie when it comes to SCCM and never used SMS at all. I'm setting the new server up for it. Here's what's going on to it:

 

Win Svr 2008 x86 SP2

WAIK for Windows 7 RC

MDT 2010 Beta 2

Conf. Mgr SP2 Beta R2

 

I'm using 3 OptiPlex 755's for my test environment (one running the Server, 2 clients) and like I said, I was happy to finally get the deployment itself to work, but unfortunately I'm stuck on the USMT hard-link migration part. I'm the sole IT person at my branch office (our HQ is in MD, I'm in Houston, TX) and between user requests and other things I get short on time some times. But thanks for the advice and the help and we'll see how it goes. :)

Share this post


Link to post
Share on other sites

  • 0

ok here's the script he used in the migrate from windows xp to 7

 

could be typos in it, but let me know if you get it working

 

looks like the script (part of it) is here already http://technet.microsoft.com/en-us/library/dd723609.aspx

 

REM 
REM Migrating from Windows XP to Windows 7
REM
REM script copied from online video @ http://technet.microsoft.com/en-us/windows/dd671583.aspx
REM
REM script name = "Migrate from Windows.old.bat"
REM


@ECHO OFF
If exist C:\USMT\*.* xcopy C:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist D:\USMT\*.* xcopy D:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist E:\USMT\*.* xcopy E:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist F:\USMT\*.* xcopy F:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist G:\USMT\*.* xcopy G:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist H:\USMT\*.* xcopy H:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist I:\USMT\*.* xcopy I:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist J:\USMT\*.* xcopy J:\USMT\*.* /e /v /y C:\Windows\USMT\
If exist K:\USMT\*.* xcopy K:\USMT\*.* /e /v /y C:\Windows\USMT\

If exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf Cd c:\windows\usmt\x86
If exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf scanstate.exe c:\store /v:13 /o /c /hardlink /nocompress /efs:hardlink /i:MigApp.xml 

/i:MigDocs.xml /offlineWinDir:c:\windows.old\windows /l:%windir%\usmt\scanstate.log /progress:%windir%\usmt\progress_scanstate.log
If exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf loadstate.exe c:\store /c /lac /hardlink /nocompress
If exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf :EOF

If not exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf Cd c:\windows\usmt\x64
If not exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf scanstate.exe c:\store /v:13 /o /c /hardlink /nocompress /efs:hardlink /i:MigApp.xml 

/i:MigDocs.xml /offlineWinDir:c:\windows.old\windows /l:%windir%\usmt\scanstate.log /progress:%windir%\usmt\progress_scanstate.log
If not exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf loadstate.exe c:\store /c /lac /hardlink /nocompress
If not exist C:\Windows\System32\DriverStore\FileRepository\acpi.inf_x86_neutral_3289cf5d0b47d372\acpi.inf :EOF

migrate_from_windows.old.bat.txt

Share this post


Link to post
Share on other sites

  • 0

btw the above was from one of the two videos i originally linked to in the USMT4 info,

 

below is another video worth checking out, but I like you have still not managed to get the USMT4 'bits' to show up in my task sequences ....

 

must be missing something, somewhere...

 

http://edge.technet.com/Media/User-State-M...with-Windows-7/

Share this post


Link to post
Share on other sites

  • 0

We SHOULDN'T need to. I think that the problem lies in the default MDT Task sequence requesting a state store from the server. One of the MDT 2010 toolkit files is ZTIUserState.wsf is supposed to have this argument set by default, but they've stated that it doesn't always work and they're investigating.

 

http://blogs.technet.com/mniehaus/archive/...nk-support.aspx

 

I do not know scripting well enough to see where this might be breaking down, though. I did see part of it call to set the arguments for /nocompress /hardlink, but I'm still doing some things getting the task sequence ready to test again. It doesn't want to add the program for Office 2007 when I choose the package.... I'll get it eventually.

 

Edit: I think I may have it. The default Client Task Sequence calls the script ZTIUserState.wsf with /capture and /estimate to create the hardlink state store if you're running USMT 4.0, otherwise it tries to request a state store on the server if you're using USMT 3. Later in the task sequence they don't call the ZTIUserState script at all. They just request the state store from the server and try to restore it. After digging through the script, there's a /restore argument you can call which is supposed to restore the files/settings from the hardlink state store if you're running USMT 4. They left out that task near the end of the sequence when calling to restore the user state. I added a Run Command Line task named Restore User Script with the command line cscript.exe "%deployroot%\scripts\ztiuserstate.wsf" /restore with my USMT 4.0 package checked and am testing it now. I'll export the task sequence if it works and take some screens of it to post.

Share this post


Link to post
Share on other sites

  • 0

I've almost got it. I got it to back up the user state which is more than it did before. The script needed to be modified, which I'll post once I've had a 100% successful run. Somehow, Windows got installed to D:\ after the reload, so I think that may be part of the issue in my custom task sequence. As far as where the hardlinks are stored, they go in to C:\_SMSTaskSequence\StateStore\USMT. Which I'm actually seeing files in there, which is good. Got the last hurdle of getting it all restored.

 

Now that I found my loadstate logs, this image I'm using has another local user account on it that my laptop images don't. Taking a closer look at ztiuserstate.wsf it was missing the /lac switch in it to tell it to create local accounts which did not exist before. So it'll be time for another test run in a few minutes.

 

Edit 7/31/09 @ 11:21 pm:

OK, I think that I will have this resolved on Monday when I'm back in the office and have access to my test environment. The reason why ztiuserstate.wsf has still been failing to do what I need was for two reasons. First, it was missing some arguments when it would call on ScanState.exe and LoadState.exe. The purpose of this VB script is to determine deployment type (SCCM, etc), determine the version of USMT on the client system, then run scanstate/loadstate with the appropriate switches (/auto, /hardlink, /nocompress, etc.). Well, when they call scanstate.exe it does not load the mig*.xml files to determine what files/settings to migrate. Locating the correct lines in ztiuserstate.wsf (this was easier for me since I don't know how to write VB scripts, but editing it wasn't hard to figure out) I added in the /auto which tells it to look in the USMT folder for all of the default .xml files to tell it what to migrate. I also looked at where loadstate.exe is called and noticed the same problem, so again I added the /auto switch to the right spot in the script.

 

Upon test runs, I could see the locked folder C:\_SMSTaskSequence\StateStore\USMT which had the data/hardlinks in it once I looked in it with an administrator account. The problem was that, even though the task sequence would say that it was wiping C:, when it would reboot to continue after loading the OS Image it was on D:, not C:. The script ONLY looks in C:\_SMSTaskSequence\StateStore\USMT, so since that path doesn't exist due to the drive letter change the task sequence failed at the end of my task sequence when loadstate.exe would run. I'd been hunting around for a little while and found out why finally. I apparently misunderstood the videos when they said you could use the default Windows 7 image. I found this blog post http://blogs.technet.com/inside_osd/archive/2007/08/08/why-does-vista-end-up-on-the-d-drive.aspx which states that using the install.wim from the disc causes it to load on D instead of C. I'm thinking that Windows 7 (really 6.1) has the same issue since it used Windows Vista (6.0) as the base for it (admittedly with a lot of GREAT changes). So that will be the next thing is capturing a new install on one of my test clients and using that as my OS image instead of the install.wim that I copied off the installation DVD.

Share this post


Link to post
Share on other sites

  • 0

I finally had my first successful test runs with Windows 7 and USMT 4 today. It was a pain, but I got it. I have exported my task sequence for everyone and I will be showing you exactly what I had to modify to make it work 100%.

 

I created a Custom Microsoft Deployment Toolkit task which I've attached below, along with a screenshot.

post-3404-124941172623_thumb.jpg

 

After you create your MDT Toolkit Package as part of the new MDT Task Sequence wizard, DO NOT Distribute it yet. Instead navigate to the Scripts folder where your toolkit files are created and locate a file called ZTIUserState.wsf. You'll need to make one edit to the file in Notepad.

 

Look for this section in the file:

	'//----------------------------------------------------------------------------
	'//  See what we need to do
	'//----------------------------------------------------------------------------

and you'll find this several lines down:

		' Configure the default options

		If sUSMTVersion = "USMT4" and UCase(oEnvironment.Item("UserDataLocation")) = "AUTO" Then
			sBaseArgs = oEnvironment.Item("LoadStateArgs") & "/hardlink /nocompress"

			If oEnvironment.Item("LoadStateArgs") = "" then
				sBaseArgs = "/v:5 /c /hardlink /nocompress"
			End if
		Else
			sBaseArgs = oEnvironment.Item("LoadStateArgs")

			If sBaseArgs = "" then
				sBaseArgs = "/v:5 /c"
			End if
		End If

 

Edit it to add the /lac argument to the loadstate command and it will look like this:

		' Configure the default options

		If sUSMTVersion = "USMT4" and UCase(oEnvironment.Item("UserDataLocation")) = "AUTO" Then
			sBaseArgs = oEnvironment.Item("LoadStateArgs") & "/hardlink /nocompress /lac"

			If oEnvironment.Item("LoadStateArgs") = "" then
				sBaseArgs = "/v:5 /c /hardlink /nocompress /lac"
			End if
		Else
			sBaseArgs = oEnvironment.Item("LoadStateArgs")

			If sBaseArgs = "" then
				sBaseArgs = "/v:5 /c /lac"
			End if
		End If

This will pass on to loadstate.exe to create any local computer accounts that were backed up with ScanState on your target system if they don't exist already. Save the file, now distribute the package through ConfigMgr just like you would any package, create a new distribution point for it, and then update the DP.

 

Start of your new Task Sequence with Use Toolkit Package and specify your MDT Toolkit package, capture your Windows and Network settings, then add a Run Command Line task to look like this:

post-3404-124941273869_thumb.jpg

Make SURE that you have both the /capture and /estimate switches as it will not work correctly otherwise. Also make sure that you check Use Package and use your USMT package. DO NOT check the box to run as a different user as in my testing it caused cscript.exe to get caught in a loop and would never complete running the script.

 

Next add a Capture User State task, I just left it at the default options.

Create the rest of your task as normal until you're ready to restore the user state. Again, we want to use the toolkit package, then run a command line.

post-3404-124941301291_thumb.jpg

Again, make sure you have it set up just like in my screen shot or this will not work if you have local computer accounts on the target system other than the local admin account. Make sure that you have /restore on the end of the command line, you specify your USMT package and do not check the box to run as a different user. It again causes cscript.exe to get caught in a loop.

Add your last task of Restore User State, check the box to restore local computer user profiles and type in a password for them. I know that we edited the ZTIUserState file to restore those accounts, but I tried it with just the edit and not this option checked and it failed on me.

 

After this my tasks ran flawlessly and I was able to deploy Windows 7 to my target systems on my test network in less than 20 minutes with user state backup and restore.

Windows 7 Deployment Task Sequence.xml

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.