As mentioned at the end of the previous Multi-site Dell CFI Follow-up post, some folks who attempted to implement the solution were met errors when the boot image was pointed to a different Management Point than the one the media was created from:
signature verification failed
signature check failed
Failed to get client identity (80004005)
failed to request for client
At this point in the process, the script has already run from the pre-execution hook to modify the TS environment variable and point it to the desired Management Point. When the TS engine reaches out to connect to that Management Point, it does a signature check and that’s where the process fails.
After some trial and error, Benno Rummens of Liberty Group has come up with an alternative solution that involves replacing the VARIABLES.DAT file with one created with media to point to the desired Management Point. Essentially, this involves creating a prestaged media image for each of the primary sites in the hierarchy, mounting the .WIM and extracting the variables.dat file, then creating a prestaged media image with a custom boot menu allowing you to choose the site and corresponding variables.dat file.
Note that the variables.dat file is not plain text, so there is no way to simply modify it on the fly. You’ll need to have SCCM generate the file for you. Also, you will need to make sure you use a file from a prestaged media build and not just a bootable media image, otherwise the OEMmedia variable will not be included (resulting on the prestaged OS image being blown away).
Here is the step-by-step provided by Benno:
1. Create a Custom MDT Boot Image
You should include the following files in the boot image (custom HTA and supported files are attached in a ZIP file at the end of this post):
logo.png (or alternative logo file specified in SelectMP.hta)
For our purposes, we will be including these files in the \Deploy\Scripts folder.
2. Create Prestaged Media image from each SCCM Management Point
3. Mount each Prestaged Media .WIM file and extract the variables.dat file
Use the following command to mount the file:
imagex /mount “F:\ your_location\HQ1_Prestaged.wim” 1 F:\Mount
Copy the “variables.dat” file from the “root\SMS\DATA” folder.
Create one folder for each SCCM management point in a folder called “Variables”. Paste the “variables.dat” file from each mounted Prestaged Media file into the corresponding folder.
When all “variables.dat” files have been copied you can delete all created Prestaged Media files to save disk space.
4. Create the master Prestaged Media image
5. Modify the prestaged boot image to include the variables.dat files and custom HTA
Create an empty folder called Mount and mount the Prestaged Media file via the Deployment Tools Command Prompt with the following command.
imagex /mountrw “F:\ your_location\Prestaged_Win7_SP1_X64.wim” 1 F:\Mount
Directory structure of Mounted Prestaged Media image:
The boot.wim is stored in the sources folder. Mount this boot file to another empty folder called Mount2 with the following command:
imagex /mountrw F:\Mount\sources\boot.wim 1 F:\Mount2
Directory structure of mounted boot.wim:
Copy the variables folder created in step 4 to the mounted boot.wim folder. (Folder Mount2)
Open the winpeshl.ini file which is located in the F:\Mount2\Windows\system32 directory and add the following line to the LaunchApps list.
The “SelectMP.hta file will copy the correct “variables.dat” file to X:\SMS\Data.
Make sure this line is on top of the list because the “SelectMP.hta” script has to run prior to the Task Sequence execution (which is initiate by the TsBootshell.exe).
Commit the changes you made to mounted images via the following commands.
imagex /unmount /commit F:\Mount2
imagex /unmount /commit F:\Mount
At this point, when you boot from the prestaged media image, you will be presented with a wizard allowing you to choose which Management Point to connect to and swapping in the appropriate variables.dat file for that site:
Here is the SelectMP.hta and supporting files:
Note – This solution involves methods not officially supported by Microsoft. It is provided as-is and should be thoroughly tested before implementing in any production environment.