My main goal from starting off with Windows 10 was to have my entire imaging suite contained within one single Task Sequence, this includes all drivers for all platforms and multiple OS support.
One major part of my Task Sequence goal was to enable bitlocker for all supported HP Laptop models along with the Surface Pro 3 (now referred to as just Surface 3). The company i currently consult for also wanted me to implement MBAM (Microsoft Bitlocker Administration & Management) within their bitlocker infrastructure and Windows 10 rollout.
I will outline all steps in my Task Sequence and the subsequent group policies to have my bitlocker recovery keys stored to my new MBAM server.
Model Support:
Assumptions:
- You have a working MBAM Server.
- You have a good understanding of Bitlocker, TPM / MBAM and how it all fits together.
- You have access to MBAM application and have created an application for it.
(msiexec /i “MbamClientSetup-2.5.1100.0.msi” /qn REBOOT=ReallySuppress)
TS Steps:
Enable TPM
Note: I experimented with a LOT of different setups here all using the HP bios tools, i wont go into what i couldn’t get working, i will just point you to what i have working now. The below step will temporarily set the bios password, configure the BIOS including TPM and then remove the temporary BIOS password. To complete the next step, you will need to gather some files, to download all the required HP Files, see my onedrive share here . Once you have the files, place them on your SCCM server, create a package (not application) named HP Bios Tools and point the source files to your freshly copied file source, you do not need to create a program for this step.
Format/Partition Disk
Pre Provision BitLocker
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#CopyFiles | |
New-Item –Path X:\windows\temp\bios –Force –ItemType Directory | |
Xcopy.exe *.* X:\windows\temp\bios /S /E /I /Y /D /C | |
Set-Location –Path X:\windows\temp\bios | |
#Set BIOS Password | |
$query = "Select * from Win32_ComputerSystem" | |
$model = Get-WmiObject –Query $query | |
if ($model.model -eq "HP Probook 450 G3") | |
{ | |
$fullcommand = "X:\windows\temp\bios\biosconfigutility64.exe" | |
$switches = "/NewSetupPasswordFile:password.bin /setconfig:TPMEnable-450G3.REPSET" | |
$proc = [Diagnostics.Process]::Start($fullcommand, $switches) | |
$proc.WaitForExit() | |
Write-Host "HP Probook 400 G3 Bios Applied" | |
} | |
if ($model.model -eq "HP Probook 470 G3") | |
{ | |
$fullcommand = "X:\windows\temp\bios\biosconfigutility64.exe" | |
$switches = "/NewSetupPasswordFile:password.bin /setconfig:TPMEnable-470G3.REPSET" | |
$proc = [Diagnostics.Process]::Start($fullcommand, $switches) | |
$proc.WaitForExit() | |
Write-Host "HP Probook 470 G3 Bios Applied" | |
} | |
if ($model.model -eq "HP Probook 450 G2") | |
{ | |
$fullcommand = "X:\windows\temp\bios\biosconfigutility64.exe" | |
$switches = "/NewSetupPasswordFile:password.bin /setconfig:TPMEnable.REPSET" | |
$proc = [Diagnostics.Process]::Start($fullcommand, $switches) | |
$proc.WaitForExit() | |
Write-Host "HP Probook 450 G2 Bios Applied" | |
} | |
if ($model.model -eq "HP EliteBook 850 G2") | |
{ | |
$fullcommand = "X:\windows\temp\bios\biosconfigutility64.exe" | |
$switches = "/NewSetupPasswordFile:password.bin /setconfig:TPMEnable-850G2.REPSET" | |
$proc = [Diagnostics.Process]::Start($fullcommand, $switches) | |
$proc.WaitForExit() | |
Write-Host "HP Probook 450 G2 Bios Applied" | |
} | |
$fullcommand = "X:\windows\temp\bios\biosconfigutility64.exe" | |
$switches = "/cspwdFile:password.bin /NewSetupPasswordFile:RemovePassword.bin" | |
$proc = [Diagnostics.Process]::Start($fullcommand, $switches) | |
$proc.WaitForExit() | |
Set-Location X:\windows\temp | |
Remove-Item –Path X:\windows\temp\bios –Force –Recurse |
Bitlocker/MBAM Deployment – HP
Net stop mbamagent
Save this file as a .reg and place it somewhere your TS can see. This step will force the user to be prompted for encryption info (if you use a password or pin) on first login. If this is not set there is a significant delay between first login and prompt.
MbamForcePrompt.reg can be also be found on the onedrive share linked earlier.
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MBAM]“NoStartupDelay”=dword:00000001[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\FVE\MDOPBitLockerManagement]“ClientWakeupFrequency”=dword:00000001“StatusReportingFrequency”=dword:00000001
cscript.exe StartMBAMEncryption.wsf /MBAMServiceEndPoint:http://MBAM.company.org.uk/MBAMRecoveryAndHardwareService/CoreService.svc /Encryptionmethod:0
Thanks Dan…How did this work on the Surface Pro 3's?
LikeLike
Steps for surface are the same you need to use uefi partition step, are you having trouble ?
LikeLike
have updated with Surface steps, read up 🙂
LikeLike
Will this work the same for Windows 8.1 please?
LikeLike
Sure will. Let me know if u haven't issues.
LikeLike
Have **
LikeLike
This comment has been removed by the author.
LikeLike
I've updated our task sequence (TS) with the steps in this article. The MBAM Agent installs fine, the service is stopped, the reg keys injected and the the service restarted but the StartMBAMEncryption.wsf script fails during the TS. I acknowledge the error, the TS completes and I logon to Windows to check that BitLocker has not been enabled. When I run the command line manually I see this:-
——————-
C:\Users\admin>cscript.exe “\\server\share\Build\BitLockerSurfacePro\Sta
rtMBAMEncryption.wsf” /MBAMServiceEndPoint:http://server.company.local/M
BAMRecoveryAndHardwareService/CoreService.svc /Encryptionmethod:0
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Property MBAMServiceEndPoint is now = http://server.company.local/MBAMRe
coveryAndHardwareService/CoreService.svc
Property Encryptionmethod is now = 0
Microsoft Deployment Toolkit version: 6.1.2373.0
MBAMServiceEndPoint: http://server.company.local/MBAMRecoveryAndHardware
Service/CoreService.svc
EncryptionMethod: 0
FAILURE (Err): -2147217405 0x80041003: Connect to MicrosoftTPM provider –
FAILURE ( 6732 ): Connect to MicrosoftTPM provider –
C:\Users\admin>
——————-
How can I fix this please?
LikeLike
Have you confirmed that your TPM chip is being enabled correctly? Check your bios to ensure that tpm is on and active, and managed by OS.
check that then get back to me
LikeLike
Hi Dan, sorry for the delay. I can see from the BIOS/UEFI that the TPM is “enabled” but tpm.msc confirms “The TPM is not ready for use”. Here are the smsts.log entries of the 0x80072718 error as seen during the task sequence:-
—————
Installing software for PackageID='PM1000A9' ProgramID='MBAM Encryption Script' AdvertID='PM120263' has started, jobID='{52A6ED0F-7B1E-4945-A0A6-7D86AC8B4295}' InstallSoftware 23/03/2016 19:10:40 1116 (0x045C)
Setting TSEnv variable 'SMSTSInstallSoftwareJobID_PM1000A9_PM120263_MBAM Encryption Script'='{52A6ED0F-7B1E-4945-A0A6-7D86AC8B4295}' InstallSoftware 23/03/2016 19:10:40 1116 (0x045C)
Waiting for installation job to complete.. InstallSoftware 23/03/2016 19:10:40 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:11:10 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:11:40 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:12:10 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:12:40 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:13:10 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:13:40 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:14:10 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:14:40 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:15:10 1116 (0x045C)
Waiting for job status notification… InstallSoftware 23/03/2016 19:15:40 1116 (0x045C)
Process completed with exit code 2147952408 TSManager 23/03/2016 19:15:44 2788 (0x0AE4)
!——————————————————————————————–! TSManager 23/03/2016 19:15:44 2788 (0x0AE4)
Failed to run the action: Start MBAM Encryption Script.
Unknown error (Error: 80072718; Source: Unknown) TSManager 23/03/2016 19:15:44 2788 (0x0AE4)
—————
This only appears to affect Windows 8.1 because our Windows 10 task sequence enables BitLocker (MBAM) fine.
Does this help identify the root cause of the problem in the Windows 8.1 task sequence please?
Best regards
Scott
LikeLike
This comment has been removed by the author.
LikeLike
Hi mate , was this meant for scott above ?
LikeLike
Hi Dan,
I am getting this error –
C:\_SMSTaskSequence\Packages\ABC01416\StartMBAMEncryption.wsf(2, 38) Windows Script Host: Cannot retrieve referenced URL : ZTIUtility.vbs
I assume this is because I do not have the step that says Copy Build Files like you do before starting this. I do have a use toolkit package step but that doesnt seem to solve it. What is contained inside the Copy Build Files step? Do I need add this script to my package?
Thanks,
LikeLike
Hi Mate,
My build files step has lots of files i use during OSD including these two.
http://i.imgur.com/1oLqUQd.png
as long as these two files are in the same package/source you should be fine.
Cheers,
Dan
LikeLike
Is there anyway to use bitlocker key directly from AD rather than from MBAM server
LikeLike
Yes using AD is the default method. MBAM has more advantages though.
LikeLike
Hi Dan,
Immediately after running the powershell script “TPMEnable_All.ps1”, the PC then reboots, and boots into this error. I haven't pulled logs yet because at this point in time, the boot mgr error is outside of the PE, so I'll have to pull logs right before rebooting.
http://imgur.com/gallery/UFMbn
LikeLike
Interesting, hit me up on Slack about this.
LikeLike
Nice post. I learn something more challenging on different blogs everyday. It will always be stimulating to read content from other writers and practice a little something from their store. I’d prefer to use some with the content on my blog whether you don’t mind. I’ll give you a link on your web blog. I recently came to know about http://machinesuae.com/, their Laptops and Tablets are very effective.
Laptops and Tablets Thanks for sharing.
LikeLike
I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business. AdLock Media
LikeLike
Hi,
Thanks for this post so much detail and presented well. Microsoft can take a cue from this ( one day may be). Is your set up mbam 2.0 or 2.5?
We have a MBAM set up (2.0) and we want to deploy win 10 1607. The OS drive encryption works, but not the data drive which is just another partition of the same disk which users are given access to store their personal data. Same sequence of steps work for both OS drive ad data drive on win 7. Would you hazard a guess as to what the issue might be ? Thanks again.
LikeLike
Great post. Another good article is https://www.niallbrady.com/2014/09/18/why-is-my-surface-pro-3-not-bitlockered-after-osd-via-system-center-2012-r2-configuration-manager/
LikeLike
The above steps helps me to find out in detail about window sequence bitlocker. Thanks admin for sharing this stuff. Hope lot more will come soon like this one.
Apple Laptop Repair in Gurgaon
Lenovo Laptop Repair in Gurgaon
LikeLike
great post – but could you advise/highlight at what point the Laptop is added into AD as part of the Task Sequence? so that the recovery info is stored in AD.
Also yes we will require a Bitlocker PIN code password – I assume this is entered by the end-user themselves manually.
LikeLike
This guide is for storing keys in MBAM, you can use the built in step in the TS to save the keys to AD if you choose.
Apply Network setting step is where you configure domain join.
Setup Windows and ConfiMgr will join the machine to the domain.
use the add>Disks>enable bitlocker step if you want to store keys in AD.
LikeLike
Am I correct in assuming that the partition disk step before the pre-provision bitlocker step is done with a regular BIOS boot because you are only using two partitions and a standard MBR disk. I expected the disk partition steps to be UEFI since most Windows 10 capable hardware nowadays is UEFI and you used a UEFI partition example in a previous part of your task sequence.
Do you also have a guide on how to install MBAM or a usable link. We are now storing the Bitlocker keys in AD but we want to switch to MBAM.
Thanks for the great articles btw.
LikeLike
The partition steps shown are both UEFI and BIOS. You should be using UEFI going forward to support features such as device guard, secure boot, credential guard.
Try this guide – http://eskonr.com/2015/10/how-to-install-mbam-2-5-sp1-and-integrate-with-sccm-configmgr-2012-r2-sp1/
LikeLike
Super cool tutorial Dan! Thanks for this! We are in a phase of migrating from W7 to W10 (1803) and security wants to enable bitlocker. We don’t have a MBAM server yet but beside that we have mainly Lenovo machines and are also moving to HP so this tutorial comes in handy 😉 Do you have any clue how we can handle Lenovo bios to enable TPM chip?
LikeLike
Hi Michael, see here for information on doing this for Lenovo – https://support.lenovo.com/gb/en/solutions/ht100612
LikeLike