Installing and Configuring MDT for Windows 10 minimal touch deployments

4
Windows 10

On a side note not covered in the video, by accident, is the step to edit bootstrap.ini so that you aren’t prompted with a welcome screen and also the extra few lines to pre-fill the username and domain so only the password is required to login to the Deployment Share.

If you want to remotely upgrade clients Zero touch see here.

To add drop down boxes to the Computer Name screen see here

Edit your bootstrap.ini from Deployment Share Properties to include

[Settings]
Priority=Default

[Default]
DeployRoot=\\DC-01\DeploymentShare$
UserDomain=home.local
UserID=Admin
UserPassword=P@ssword!
SkipBDDWelcome=YES

Updated rules as of 01/03/2021 to perform ZeroTouch if required

  • Now also auto bit lockers the disk – need to test the outcome if not TPM is present.
  • To achieve ZeroTouch with the rules below you will need to set your machines to have PXE as their first boot device and configure WDS to always boot to PXE even without F12 or ENTER
[Settings]
Priority=Default
Properties=MyCustomProperty

[Default]
;LiteTouch or ZeroTouch
;Change SkipComputerName and SkipDomainMembership from NO to YES
;and uncomment OSDComputername and MachineObjectOU to make this ZeroTouch 
SkipComputerName=YES
SkipDomainMembership=YES
OSDComputername=PC-#Right("%SerialNumber%",5)#
MachineObjectOU=OU=Desktops,OU=Computers,OU=Home,DC=home,DC=local

;Set local admin details
SkipAdminPassword=YES
AdminPassword=LocalP@ssword!

;Specify the domain to join and credentials
JoinDomain=home.local
DomainAdmin=Admin
DomainAdminDomain=home.local
DomainAdminPassword=P@ssword!

;Set the task sequence
SkipTaskSequence=YES
TaskSequenceID=0001

;Set the name at the top dynamically
_SMSTSORGNAME=%TaskSequenceName% on %OSDComputername%

;Set the location and time zone
KeyboardLocale=0809:00000809
UserLocale=en-GB
UILanguage=en-GB
TimeZoneName=GMT Standard Time

;Skip screens that arent required
SkipComputerBackup=YES
OSInstall=YES
SkipAppsOnUpgrade=NO
SkipProductKey=YES
SkipUserData=YES
SkipLocaleSelection=YES
SkipTimeZone=YES
SkipApplications=YES
SkipSummary=YES
SkipCapture=YES
SkipFinalSummary=YES
HideShell=YES

;Apply best practice security policies onto the machine
ApplyGPOPack=YES

;Enable Bitlocker Config
SkipBitLocker=YES
BDEInstallSuppress=NO
BDEWaitForEncryption=FALSE
BDEInstall=TPM
BDERecoveryKey=AD

;Set the final action
FinishAction=REBOOT

See below for a quick demo on how the rules work in action.

Downloads used in the video
https://www.microsoft.com/en-us/download/details.aspx?id=54259
https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install

Found priceless insights in this blog? Support the author’s creativity – buy them a coffee!

4 thoughts on “Installing and Configuring MDT for Windows 10 minimal touch deployments

  1. Hello there.

    Is there a way of making MDT ask the user which hard disk to install windows on?

    To explain, im in the middle of upgrading my gaming rig in my lab to an m.2 SSD from a SATA one. I would like to avoid windows being intalled onto the SSD if i can.

    Thanks

    1. Microsoft Deployment Toolkit (MDT) does not have an out-of-the-box option to prompt you to choose the hard disk during deployment. However, you can achieve this by creating a custom script that prompts you to select the target disk and then modifies the task sequence variables accordingly.

      Here’s a step-by-step guide on how to create and integrate the custom script into your MDT task sequence:

      1. Create a PowerShell script (e.g., SelectDisk.ps1) with the following content:

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      $disks = Get-Disk | Sort-Object -Property Number
      $diskMenu = @()
      foreach ($disk in $disks) {
          $diskMenu += New-Object PSObject -Property @{
              DiskNumber = $disk.Number
              Size = "{0:N2} GB" -f ($disk.Size / 1GB)
              MediaType = $disk.MediaType
          }
      }
      
      if ($diskMenu.Count -gt 1) {
          $selectedDisk = $diskMenu | Out-GridView -Title "Select the target disk for Windows installation" -OutputMode Single
          if ($selectedDisk -ne $null) {
              $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
              $TSEnv.Value("OSDisk") = $selectedDisk.DiskNumber
          }
      } elseif ($diskMenu.Count -eq 1) {
          $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
          $TSEnv.Value("OSDisk") = $diskMenu[0].DiskNumber
      } else {
          Write-Host "No disk found"
          exit 1
      }
      

      This script retrieves all HDDs on the system, presents them in a grid view for selection, and then sets the “OSDisk” task sequence variable to the selected disk number.

      2. Save the SelectDisk.ps1 script in your MDT deployment share, for example, in the “Scripts” folder.

      3. Open the MDT Deployment Workbench, and navigate to your deployment share.

      4. In your task sequence, create a new “Run PowerShell Script” step:

      a. Right-click the “Preinstall” group in the task sequence.
      b. Choose “New” > “Run PowerShell Script”.
      c. Name the step, for example, “Select Target Disk”.
      d. Set the “PowerShell script” field to “.\Scripts\SelectDisk.ps1”.

      5. Modify the “Format and Partition Disk” step:

      a. Click on the “Format and Partition Disk” step in the task sequence.
      b. Change the “Disk number” field to “%OSDisk%” to use the selected disk number.

      6. Save the task sequence and update your deployment share.

      Now, during the deployment, you will be prompted to select the hard disk for Windows installation. Note that this script assumes that the target disks are of type ‘HDD’.

Leave a Reply

Your email address will not be published. Required fields are marked *