Files
Infra-LAB/projects/MDT/Scripts/DeployWiz_BitLocker.vbs

203 lines
4.7 KiB
Plaintext

' // ***************************************************************************
' //
' // Copyright (c) Microsoft Corporation. All rights reserved.
' //
' // Microsoft Deployment Toolkit Solution Accelerator
' //
' // File: DeployWiz_BitLocker.vbs
' //
' // Version: 6.3.8456.1000
' //
' // Purpose: BitLocker wizard pane initialization script
' //
' // ***************************************************************************
Option Explicit
Function InitializeBDE
Dim sType
sType = ucase(Property("BdeInstall"))
If sType = "" then
sType = ucase(Property("OSDBitLockerMode"))
End if
Select Case sType
Case "TPM"
BdeRadio2.checked = true
BdeModeRadio1.checked = true
Case "TPMKEY"
BdeRadio2.checked = true
BdeModeRadio2.checked = true
If Property("BdeKeyLocation") <> "" then
BdeModeSelect1.Value = ucase(Property("BdeKeyLocation"))
ElseIf Property("OSDBitLockerStartupKeyDrive") <> "" then
BdeModeSelect1.Value = ucase(Property("OSDBitLockerStartupKeyDrive"))
End if
Case "KEY"
BdeRadio2.checked = true
BdeModeRadio3.checked = true
If Property("BdeKeyLocation") <> "" then
BdeModeSelect2.Value = ucase(Property("BdeKeyLocation"))
ElseIf Property("OSDBitLockerStartupKeyDrive") <> "" then
BdeModeSelect2.Value = ucase(Property("OSDBitLockerStartupKeyDrive"))
End if
Case "TPMPIN"
BdeRadio2.checked = true
BdeModeRadio4.checked = true
If oEnvironment.item("BdePin") <> "" then
BdePin.value = oEnvironment.item("BdePin")
End if
Case Else
BdeRadio1.Checked = true
End Select
If UCase(Property("BdeRecoveryKey")) = "AD" or UCase(Property("OSDBitLockerCreateRecoveryPassword")) = "AD" Then
ADButton1.checked = True
Else
ADButton2.Checked = True
End if
WaitForEncryption.checked = ucase(Property("OSDBitLockerWaitForEncryption")) = "TRUE" or ucase(Property("BdeWaitForEncryption")) = "TRUE"
BdeInstallSuppress.value = "YES"
End Function
Function ValidateBDE
Dim regEx
' Enable and disable
If BDERadio2.checked then
' Enable second set of radio buttons
BdeModeRadio1.disabled = false
BdeModeRadio2.disabled = false
BdeModeRadio3.disabled = false
BdeModeRadio4.disabled = false
BdePin.disabled = false
ADButton1.disabled = false
ADButton2.disabled = false
WaitForEncryption.disabled = false
Else
' Disable second set of radio buttons
BdeModeRadio1.disabled = true
BdeModeRadio2.disabled = true
BdeModeRadio3.disabled = true
BdeModeRadio4.disabled = true
BdeModeSelect1.disabled = true
BdeModeSelect2.disabled = true
BdePin.disabled = true
ADButton1.disabled = true
ADButton2.disabled = true
WaitForEncryption.disabled = true
End if
' Set BdeInstall based on choices
If BDERadio2.checked then
BdeInstallSuppress.value = "NO"
' Mode/location
If BdeModeRadio1.checked then
BdeInstall.value = "TPM"
BdePin.disabled = true
ElseIf BdeModeRadio2.checked then
BdeInstall.value = "TPMKey"
OSDBitLockerStartupKeyDrive.value = BdeModeSelect1.Value
BdeModeSelect1.disabled = false
BdeModeSelect2.disabled = true
BdePin.disabled = true
ElseIf BdeModeRadio3.checked then
BdeInstall.value = "Key"
OSDBitLockerStartupKeyDrive.value = BdeModeSelect2.Value
BdeModeSelect1.disabled = true
BdeModeSelect2.disabled = false
BdePin.disabled = true
Else
BdeInstall.value = "TPMPin"
BdeModeSelect1.disabled = true
BdeModeSelect2.disabled = true
BdePin.disabled = false
End if
If ADButton1.checked Then
BdeRecoveryKey.value = "AD"
Else
BdeRecoveryKey.value = ""
End if
OSDBitLockerWaitForEncryption.value = WaitForEncryption.checked
Else ' IF BDERadio1.Checked then
BdeInstall.value = ""
BdeInstallSuppress.value = "YES"
End if
ValidateKey
' Scan required fields
ValidateBDE = ParseAllWarningLabels
End Function
Function ValidateKey
InvalidKey.style.display = "none"
ValidateKey = TRUE
If not BdeModeRadio4.Checked or not BDERadio2.Checked then
BdePin.value = ""
Exit Function
End if
If len(BdePin.value) = 0 Then
InvalidKey.innerText = "* Required (MISSING)"
InvalidKey.style.display = "inline"
ValidateKey = FALSE
ElseIf Not IsEmpty(oEnvironment.item("BDEPinMinLength")) And isNumeric(oEnvironment.item("BDEPinMinLength")) then
if len(BdePin.value) < cLng(oEnvironment.item("BDEPinMinLength")) then
InvalidKey.innerText = "* Pin must be " & oEnvironment.item("BDEPinMinLength") & " charaters or longer"
InvalidKey.style.display = "inline"
ValidateKey = FALSE
End if
ElseIf (oEnvironment.item("BDEAllowAlphaNumericPin") <> UCase("YES")) and Not IsNumeric(BdePin.value) then
InvalidKey.innerText = "* Pin must be numeric"
InvalidKey.style.display = "inline"
ValidateKey = FALSE
End if
End Function