none
MDT Wizard: read user input to change subsequent wizard behavior

    Question

  • I'm using MDT Wizard Studio to add a first custom pane to the MDT Wizard (build 8450) that requests a customer name and stores it in a variable %OSDCustomer%, that I intend to use to choose which domain to join the computer to. It goes like this:

    - The first wizard pane requests the customer name in a user input text box
    - The second pane is the standard task sequence selection
    - The third pane is the standard computer name, domain join and OU

    When I run it, I can see in the wizard.log that %OSDCustomer% contains the customer name typed in the text box (eg. Customer-1), but in the third pane the domain and OU fields are empty, they do not get populated by the relative section in the customsettings.ini.

    Here's the relevant part of my CustomSettings.ini:

    [Settings]
    Priority=CustomerInfo, Default

    [CustomerInfo]
    SubSection=%OSDCustomer%     <-- receives Customer-1 or Customer-2 from the first wizard pane

    [Customer-1]
    JoinDomain=customer-1.locale
    MachineObjectOU=ou=Workstations,ou=MDT,dc=customer-1,dc=locale
    DomainAdmin=administrator
    DomainAdminDomain=CUSTOMER-1
    DomainAdminPassword=password

    [Customer-2]
    JoinDomain=customer-2.locale
    MachineObjectOU=ou=Domain Computers,dc=customer-2,dc=locale
    DomainAdmin=administrator
    DomainAdminDomain=CUSTOMER-2
    DomainAdminPassword=password

    [Default]
    SLShare=\\192.168.10.10\Logs$
    EventService=http://192.168.10.10:9800
    [...]

    If I change SubSection=%OSDCustomer% with SubSection=Customer-1, it works as intended. So it seems to me the customsettings.ini file is read when the wizard loads, and is not re-evaluated after every wizard pane. Is there a way to make it do what I want it to do ?

    thanks


    Saturday, November 10, 2018 10:57 PM

All replies

  • I think what is happening is that the Customsettings.ini file is processed before the Wizard is run.  Thus the %OSDCustomer% is not set yet.

    I believe you need to add a Gather task after the Wizard is run.  This will re read the CustomSettings.ini file and populate the variable.  The question is where to place the Gather task in the sequence.

    Thursday, November 15, 2018 8:56 PM
  • Maybe a slightly different approach. Why not detect the gateway the client machine is on and use that to determine which OU to join the computer to? I use this in my bootstrap.ini so MDT knows which deployment server to pull from. You can use it in the customsettings.ini as well and set variables based on location.

    Personally I dont use the wizard and bypass all the pages and then use a custom HTA script to prompt for any user input on a single page.

    Thursday, November 15, 2018 10:54 PM
  • Thank you all. I already have the gateway detection in the bootstrap.ini to reach the closest of many MDT servers in a geographic network: I can't use that for the domain join because my clients can be joined to different domains reacheable from the same network location. I got uncomfortable playing with the mdt wizard, so I went with this solution, having multiple TS with its customsettings.ini:

    https://social.technet.microsoft.com/Forums/en-US/e3878cd0-37f6-45b4-bbe4-a49fecddcbde/mdt-2013-different-settings-per-task-sequence?forum=mdt

    The only drawback, except for needing multiple task sequences, is that the custom ts detection doesn't seem to work when creating the media (Advanced Configuration --> Media), the first custom ts gets always chosen independent of the task sequence. Other than that, it is working fine.
    Saturday, November 17, 2018 2:43 PM