Copying $OEM$ files and folders with MDT 2012 Update 1
I mentioned in the blog post at https://blogs.technet.com/b/mniehaus/archive/2012/07/21/mdt-2012-update-1-always-applying-images-with-imagex.aspx that MDT 2012 Update 1 no longer uses SETUP.EXE to install Windows 7 and above. One side effect of this is that $OEM$ folders are no longer going to be copied, since that was something that SETUP.EXE did that the MDT LTIApply.wsf script doesn’t handle.
I’ve never been a big fan of using the $OEM$ folder structure, as it’s just as easy to add explicit XCOPY steps into the task sequence. But for those of you out there that are using them, you can leverage the attached script (see the attachment link below) in your task sequence to do that.
To set this up, first copy the script into your deployment share. Then, add a new step to the task sequence right after the “Install Operating System” step to run the script. It should look like this:
Now, it will follow the original MDT logic for locating the appropriate $OEM$ folder to use, checking in this order:
- %DeployRoot%\Control\%TaskSequenceID%\$OEM$
- %SourcePath%\$OEM$
- %DeployRoot%\%Architecture%\$OEM$
- %DeployRoot%\$OEM$
where %DeployRoot% is the path to the deployment share, %TaskSequenceID% is the ID of the running task sequence (e.g. WIN8), %SourcePath% is the path within the deployment share for the operating system being used, and %Architecture% is either X86 or X64, depending on the boot image being used. (That’s a bit of a flaw in the original MDT logic since we now support cross-platform deployments – it would choose an X86 $OEM$ folder even if you were deploying an X64 operating system. That’s probably a good sign that no one is using this option. Most people use the last one.)
Once it finds a folder, it will look for two folders in that $OEM$ folder and copy them to the appropriate place for the new OS:
- $1 will be copied to the root of the volume that the new OS image was applied to.
- $$ will be copied to the Windows folder on the volume that the new OS image was applied to.
The script doesn’t deal with any other folders because it’s too messy to do that from within Windows PE – drive letters aren’t the same as what they would end up being in the full OS.
Comments
Anonymous
January 01, 2003
Thanks, I'm old school and prefer the $OEM$ for simplicity sake.Anonymous
January 01, 2003
Thanks. This was helpful!Anonymous
January 01, 2003
...Just discovered that MDT 2012 seems to do it without the script. I have a '$1' folder within the $OEM$ folder in my MDT 2012 share and it copies across just fine...no errors at the end of deployment...Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
This didn't work for me either using MDT 2013....anyone figure this out?Anonymous
January 01, 2003
Worked perfectly with MDT 2013. Thank you.Anonymous
January 01, 2003
Euhm... ok?Anonymous
January 01, 2003
good postAnonymous
June 29, 2013
If this works.... I will be so happy!Anonymous
August 08, 2013
The comment has been removedAnonymous
August 15, 2013
The comment has been removedAnonymous
September 02, 2013
Thanks! Great work! It helped me to finaly change the CTRL-ALT-DEL to CTRL-ALT-INSERT for VMWare machines. Now I only have to check how to copy specific files with WMI filters ;-)Anonymous
November 26, 2013
Anyone needed to make any changes for MDT 2013? My Task Sequence is failing at this step for some reason.Anonymous
November 26, 2013
Highly doubtful, but I haven't tried it.Anonymous
December 18, 2013
The comment has been removedAnonymous
March 13, 2014
Works fine in MDT 2013 . Just add the script after Applying OS..Anonymous
April 04, 2014
This may help for those where it's failing as it was for me too.
I had used the $OEM$ at first in the root of the deployment share. However if you have multiple IDs you need to create the $OEM$ folder for each task sequence. ie, deploymentshare$OEM$ and so on
Hope this helpsAnonymous
April 04, 2014
The comment has been removedAnonymous
July 11, 2016
It was copying fine for a while but now I am getting the red error at the end as well. The only change I have made is possibly adding folders to the folder that gets copied. I am setting the copy job to continue on error so that it does not break the imaging process.