Deploying Windows 7 VL with MAK (Multiple Access Keys) using MDT 2010
Hi,
Deploying Windows 7 VL with MAK (Multiple Access Keys) using MDT 2010It is possible to include a MAK activation key, however, the standard methods of including the key in the unattend.xml file requires modification. Additionally, it is possible to deploy MAK keys using a custom script as part of a Task Sequence.

Situation
While
deploying Windows 7 Enterprise VL with MDT 2010, the typical behaviour
would be to include the activation key in the customisation wizard used
to create a Task Sequence for the deployment of the Windows 7 operating
system. By design, the Task Sequence wizard is designed to support
retail activation keys, not volume license keys. The difference is
subtle, but important to the context of this scenario.
As you complete the New Task Sequence Wizard, you are prompted the Product key.

When
you enter a product key into the field shown above, the MDT 2010 wizard
adds the code into two specific locations of the unattend.xml file for
this task sequence.


The first location for the ProductKey is the WindowsPE phase, specifically, the x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey setting.
The second location is in the Specialize phase, specifically the x86_Microsoft-Windows-Shell-Setup_neutral\ProductKey setting.
Issue
The
Unattended Windows Setup reference explains why there are two entries
for the ProductKey setting, but if the Product Key for Windows 7
Enterprise is placed in both locations (as is the default) when
entering the Product Key using the task sequence creation wizard, you
will receive the following error when attempting to build or deploy a
client machine with that task sequence.

Resolution
There
are a number of options available to address this particular situation.
Each provides a resolution, but using different methods.
OPTION 1
Simply delete the ProductKey entry in the WindowsPE phase, specifically, the x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey setting.
The unattended install should work as expected deploying your Windows 7
machine using the configurations your define. Once the Windows 7
installation is complete, it will be necessary to either manually kick
off the activation process from the Computer Properties screen of the
machine, or using the Volume Activation Management Tool (VAMT) to
complete the activation remotely.
NOTE: At the time this blog was authored, an updated VAMT tool is not presently available with support for Windows 7.
OPTION 2
Use the slmgr.vbs
script to perform the activation as a task in the task sequence in lieu
of the ProductKey entries in the unattend.xml file. Check the two
locations in the unattend.xml file to validate that both entries for ProductKey are blank.
STEP 1: Add the first entry into the Custom Tasks section of the State Restore phase as shown below:

Task Name: | Activate Client using VL MAK |
Command Line: | cscript.exe c:\windows\system32\slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX |
Start in: | c:\windows\system32 |
NOTE: Replace the X's with your VL MAK key for Windows 7
STEP 2: Add the slmgr.vbs /ato script to automatically activate the client during deployment as shown below:

Task Name: | Activate the machine using the VL MAK |
Command Line: | cscript.exe c:\windows\system32\slmgr.vbs /ato |
Start in: | c:\windows\system32 |
NOTE:
This task will only work if the machine is connected to the internet
during the State Restore phase. If this task fails because the network
connectivity is not fully initialized, it is possible to manually
activate the client through the Computer Properties window.
Now
when the client machine is deployed, the task sequence will provide the
MAK key during the State Restore phase, and attempt to automatically
activate the client machine.
OPTION 3
Use the
OverRideProductKey entry in the CustomSettings.ini to specify the MAK
key to be injected. This will add the MAK product key only into the x86_Microsoft-Windows-Shell-Setup_neutral\ProductKey location in the Unattend.xml.
From the MDT Toolkit Reference document:
OverrideProductKey
The
Multiple Activation Key (MAK) string to be applied after the target
operating is deployed to the target computer. The value specified in
this property is used by the ZTILicensing.wsf script during the State
Restore Phase to apply the MAK to the target operating system. The
script also configures the volume licensing image to use MAK activation
instead of Key Management Service (KMS). The operating system needs to
be activated with Microsoft after the MAK is applied. This is used when
the target computer is unable to access a server that is running KMS.
Value | Description |
MAK | The MAK string to be provided to the target operating system. |
Example |
[Settings] Priority=Default [Default] ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF OverrideProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF |
Option 4
During
deployment, it is possible to specify the Product Key while running the
deployment of the workstation. The Deployment Wizard includes an option
to prompt for the Product Key using the "SkipProductKey" entry in the
CustomSettings.ini file for the Deployment Point. By specifying an
entry of "SkipProductKey=No" the user will be prompted to enter a key
while running the deployment of the machine, and if they enter their
MAK key there, they deployment will complete successfully.
From the MDT Toolkit Reference document:
SkipProductKey
Indicates whether the Specify the product key needed to install this operating system wizard page is skipped.
For
other properties that must be configured when this property is set to
YES, see the section “Providing Properties for Skipped Windows
Deployment Wizard Pages” later in this reference.
Value | Description |
YES | Wizard page is not displayed, and the information on that page is not collected. |
NO | Wizard page is displayed, and the information on that page is collected. This is the default value. |
Example |
[Settings] Priority=Default [Default] SkipWizard=NO SkipCapture=NO SkipAdminPassword=YES SkipApplications=NO SkipAppsOnUpgrade=NO SkipComputerBackup=NO SkipDomainMembership=NO SkipDeploymentType=NO SkipUserData=NO SkipPackageDisplay=NO SkipLocaleSelection=NO SkipProductKey=YES |
Caution This property value must be specified in upper case so that it can be properly read by the deployment scripts.
UPDATE:
If
you are working with MDT 2010 Beta 1 then the issue and resolutions
referred to above are valid – however our other most esteemed colleague
and MDT creator Michael Niehaus has pointed out that the issue has been
fixed for MDT 2010 Beta 2. Now the screen will have another option to
match the options that are available in the client-side Deployment
Wizard:
![clip_image002[1] clip_image002[1]](http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002%5B1%5D_thumb.jpg)
Resources
For more information on the using the SLMGR.VBS script for activation tasks, see the Volume Activation 2.0 Deployment Guide.
For more information on the ProductKey setting, see the Unattended Windows Setup Reference.

Adding tools to Windows PE in an mixed x86 x64 environmentWhen
creating both x86 and x64 Windows PE images, provide both x86 and x64
version of any tools that will be used. MDT 2008 provides a method to
add additional file to the Windows PE image using the Extras folder
which is configured on the Windows PE tab of the deployment point
properties dialog
There
is only one folder that can be specified. 64 bit Windows PE has no 32
Bit WOW subsystem, tool executables for each architecture must be
provided.
Here is a one line batch file that solves the problem:
@%SystemDrive%\tools\%PROCESSOR_ARCHITECTURE%\%~n0.exe
Here are the steps to make makecab.exe available in Windows PE:
- Create an Extras folder add the path to the deploy point configuration. i.e. e:\Extras
- Create the e:\Extras\tools folder
- Create e:\Extras\tools\amd64 and e:\tools\x86
- Obtain 32 and 64 bit copies of makecab and place then in the correct folder.
- Create e:\Extras\Windows and e:\Extras\Windows\System32
- Create e:\Extras\Windows\System32\makecab.cmd and add the single line @%SystemDrive%\tools\%PROCESSOR_ARCHITECTURE%\%~n0.exe
- Use the MDT console and update the deployment point to create a new WIM and ISO
How it works
Anything added to the Extras folder goes into the root of the WIM and
thus the root of X: when the WIM is booted. The Processor_Architecture
variable will contain the value amd64, x86, or IA64 (Note: MDT does
not support IA64). In a batch file the variable %0 is the name of the
batch file. the prefix ~n modifies the variable %0 to by dropping the
extension. So in the example, the line in the batch file expands to
x:\tools\amd64\makecab.exe in 64 bit Windows PE and
x:\tools\x86\makecab.exe in 32 bit Windows PE.
Notes
- When
copying executables into tools\amd64 or tools\x86 make sure you copy
all the required support files including any required MUI folders.
- Make sure that the tool is referenced by its basename i.e. makecab not makecab.exe
- Make sure the 64 bit tools folder is named amd64 not x64.
Thanks to :
Richard Trusson
Dave Hornbaker
Michael Niehaus