none
Can an optional application be forced to install last?

    Question

  • One of our optional applications chosen from the Applications screen in the MDT wizard is encryption software (not Bitlocker).

    If it installs along with the other applications, there will be a preboot authentication screen at every reboot that will halt the progress for the rest of the deployment.

    We cannot simply put the Install Applications task as the last task because if we install optional applications last (for instance Visio or Project), we will also need to run another round of checking for new Windows updates and if any new updates are needed, that will be additional reboots which will bring up the encryption login screen again.

    So, is there some way to set an application installation to always run after other applications have completed installation and the final Windows update check and reboots have completed?

    We cannot do WMI checks or anything like that because sometimes the same model computer will have this specific vendors encryption and require preboot authentication and sometimes not.

    Saturday, May 04, 2013 8:10 PM

Answers

  • Haven't tried this, but this was my first thought (and if you need help, I'll try and write some sample code, just let me know):

    Assuming that the Encryption software is not configured as mandatory (and if it is, just change in PowerShell/VBScript which variable you parse) in CustomSettings.ini, I'd create a PowerShell or VBScript that runs right before your Install Applications step that parses over all Applications00x values to see if one selected was your Encryption software (match by GUID).  If the script locates it, it both sets a new custom variable (say blnInstallEncryption=YES) as well as removes it from the list of Applications00x and re-orders them so that the 'array' isn't missing a value.  Then, later in your Task Sequence, run a standard Install Application specific for the encryption software, but set the condition for blnInstallEncryption=YES.


    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    • Marked as answer by MyGposts Friday, May 10, 2013 5:06 AM
    Sunday, May 05, 2013 12:26 AM
  • I'd do what DCtheGeek is suggesting. To make it a little easier you might just have the application command line be to a VBS that sets an MDT variable "blnInstallEncrption=YES" for instance, and then have a standard install application install the encryption software if the variable equals "YES".

    By doing it this way instead of the way mentioned before you wont have to parse Applications and deal with GUIDs. Just a simple script that sets an MDT variable.

    • Marked as answer by MyGposts Friday, May 10, 2013 5:06 AM
    Sunday, May 05, 2013 12:45 AM

All replies

  • Haven't tried this, but this was my first thought (and if you need help, I'll try and write some sample code, just let me know):

    Assuming that the Encryption software is not configured as mandatory (and if it is, just change in PowerShell/VBScript which variable you parse) in CustomSettings.ini, I'd create a PowerShell or VBScript that runs right before your Install Applications step that parses over all Applications00x values to see if one selected was your Encryption software (match by GUID).  If the script locates it, it both sets a new custom variable (say blnInstallEncryption=YES) as well as removes it from the list of Applications00x and re-orders them so that the 'array' isn't missing a value.  Then, later in your Task Sequence, run a standard Install Application specific for the encryption software, but set the condition for blnInstallEncryption=YES.


    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    • Marked as answer by MyGposts Friday, May 10, 2013 5:06 AM
    Sunday, May 05, 2013 12:26 AM
  • I'd do what DCtheGeek is suggesting. To make it a little easier you might just have the application command line be to a VBS that sets an MDT variable "blnInstallEncrption=YES" for instance, and then have a standard install application install the encryption software if the variable equals "YES".

    By doing it this way instead of the way mentioned before you wont have to parse Applications and deal with GUIDs. Just a simple script that sets an MDT variable.

    • Marked as answer by MyGposts Friday, May 10, 2013 5:06 AM
    Sunday, May 05, 2013 12:45 AM
  • I like that weaston, basically have two packages, one is the "shadow package" that sets the variable and the other is the real package.  Use the GUID of the "shadow package" in your CustomSettings and then have the step that acts on the condition later point to the real package.  Much simpler than a complex custom script. : )

    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Sunday, May 05, 2013 1:07 AM