locked
MDT 2012, Custom Task Sequence Variable to choose between Operating System Images RRS feed

  • Question

  • Hi there,

    I've used the search about MDT's Custom Task Sequence Variables but Im thinking I dont understand the correct way to use the variables.

    So I have a Build task sequence to build a reference image, the thing is that a customer of ours has two Windows XP versions

        • DELL OEM source files
        • Windows XP VLK source files

    So I've guessed by setting a task sequence variable at the beginning of the task sequence I can easily switch between the different operating system images/source files. So I've set a Custom Task Sequence Variable: REFTYPE at the beginning of the task sequence.

    Then when it comes to selecting the correct operating system image I've set an condition to the folder "Install" which inherits the steps "Install Operating System" and "Next Phase"

    See my pictures below to fully understand what I mean:

    So here I set the Task Sequence Variable which in this case is VLK

    Here I have set the value OEM as REFTYPE, which should take the OEM source files for deployment

    Obviously, I've set the VLK value as REFTYPE on the other folder, which would install the Windows VLK source files.

    However, whatever I try, I cant get this to work.

    Some advise would be much appreciated.

    Many thanks in advance


    Keep us posted, and if helpful please rate! Kind regards


    • Edited by Rens H Monday, September 24, 2012 6:43 PM
    Monday, September 24, 2012 6:41 PM

Answers

  • Hi Rens,

    It took me a while to find this thread again.. anyway what I don't understand at this point is why you're going through all this trouble?

    To me it seems like you're trying to re-invent the wheel (as a figure of speech of course). MDT already provides you with a full fledged wizard in which you can enter all the information that you want to provide manually.

    The only thing that MDT doesn't provide out of the box would be an input field for the computer description and the product key.

    Since initially you referred to WinXP by itself, I figured it was just a matter of just deploying 2 kind of XP images with 1 task sequence, this by itself isn't much of an issue. However when you're starting to add different OS's to this same task sequence it will add a whole level of complexity, since MDT was not designed to function this way. So I'm not even going to try and come up with a method to think of sorting out multiple unattend.txt and unattend.xml files for 1 single task sequence.

    Instead you should create multiple task sequences, one per OS. Ensure the install applications task sequence step is enabled, and configured to install multiple applications (default setting), this will allow you to go through the MDT wizard, with first selecting an OS, along with some settings like computername and the software that should be installed.

    The two additional fields that you added in your frontend, you could add those on a custom wizard pane: http://blogs.technet.com/b/mniehaus/archive/2012/03/01/3474394.aspx

    Kind regards,

    Stephan Schwarz


    If one of these posts answered your question or issue, please click on "Mark as answer".

    My Blog | Twitter: @Schwarz_Stephan | MCTS, MCITP, MCSA, MCC-2011.
    How to configure Windows RE/OEM Recovery Partition with MDT


    • Edited by Stephan Schwarz Wednesday, October 3, 2012 7:27 PM
    • Marked as answer by Rens H Thursday, April 25, 2013 1:40 PM
    Wednesday, October 3, 2012 7:26 PM

All replies

  • Side note here: using OEM media for imaging is verboten per the Windows EULA. There are no exceptions: http://www.microsoft.com/licensing/about-licensing/volume-licensing-briefs.aspx

    Jason | http://blog.configmgrftw.com

    Monday, September 24, 2012 7:24 PM
  • Jason,

    Thanks for this information, I was not aware of this. Well, that's one way to solve my problem :) But let me rephrase my question then. Say I wanted to choose between two Operating System Images based on a custom task sequence variable, with the correct variable of image to use set right at the beginning of my task sequence like I did in the example screenshot above.

    How can I realize this then?


    Keep us posted, and if helpful please rate! Kind regards

    Monday, September 24, 2012 7:34 PM
  • Hi,

    I think you'll run into a totally different issue regardless of what is permitted or not. I don't see what the issue is for deploying OEM XP since I used MDT for this as well when I was still working for a system builder, OEM licenses are for pc's that are sold including the OS to another party. Whether the other party buys pc's from a large OEM, or a different channel shouldn't matter.

    Anyway, I think you should be able to manage to get the proper image deployed onto the disk using the method you're trying, however the unattend.txt file that will be used (including the product key to make the installation unattended) is the one that's in the folder of the current task sequence. These config files are not bound to a specific image, but task sequences. Example:

    Your TSID is: {XPPRO}
    Inside the \Control\XPPRO folder, you'll see an unattend.txt file. In this you can specify a product key. An OEM key, cannot be used to pass the product key validation during setup with a VLK (mini)setup. Same goes for the other way around. While typing this I came to the thought that you can get around this issue by not providing a product key inside the unattend.xml but instead use the variable [ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF] and configure this the same way you plan on choosing the proper image (so verify the value of reftype, to apply either the OEM key, or VLK key). Note: in order not to conflict with OEM licensing, the deployed OEM XP will need to have it's product key removed (I always do this with sysprep) so that every OEM type machine will need to be activated with the CoA product key. If you don't do this step, every machine will use the same single OEM key, normal OEM keys are not suitable for this kind of activation.

    What do you use to configure the reftype variable? A custom pane in the deployment wizard?


    Kind regards,
    Stephan Schwarz


    If one of these posts answered your question or issue, please click on "Mark as answer".

    My Blog | Twitter: @Schwarz_Stephan | MCTS, MCITP, MCSA, MCC-2011.
    How to configure Windows RE/OEM Recovery Partition with MDT

    Monday, September 24, 2012 10:17 PM
  • I don't see what the issue is for deploying OEM XP since I used MDT for this as well when I was still working for a system builder, OEM licenses are for pc's that are sold including the OS to another party. Whether the other party buys pc's from a large OEM, or a different channel shouldn't matter.


    OEM licenses and images are for distribution only by OEMs. Anything else is strictly against the EULA. It matters simply because Microsoft says it does. Please read the Reimaging Rights document at the link above.

    Jason | http://blog.configmgrftw.com

    Tuesday, September 25, 2012 12:55 AM
  • Hi there,

    thank you all for your reply's. I'm currently working on a vbscript msgbox or inputbox where I can provide the variable's for the type of image, which would be a selectable between multiple WIM files. Then provide the hostname and the computer description. Then I've got all the blanks filled in.

    The thing is that at first I wanted to specify the task sequence value in the task sequence itself instead of creating a HTA or vbscript to query for the value. But I  suppose this is something that does not work?!


    Keep us posted, and if helpful please rate! Kind regards

    Wednesday, September 26, 2012 8:13 AM
  • So, I've been working on a Custom HTA and this is the result:

    Code block:

    <html>
    <head>
    <title>OSD Front End Script</title>
    <HTA:APPLICATION APPLICATIONNAME="OSD GATHER" SCROLL="yes" SINGLEINSTANCE="yes" WINDOWSTATE="normal" BORDER="thin">
    </head>
    
    <script language="vbscript" type="text/vbscript">
    
    ' Set objects and declare global variables
    Set env = CreateObject("Microsoft.SMS.TSEnvironment")
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Sub Window_onLoad
        window.resizeTo 400,550 ' Resize the HTA window on first load
        window.moveTo 100, 100 ' Move the window to the center
    End Sub
    
    Sub ButtonFinishClick
        ' ButtonFinishClick is executed by the "Finish" button.
       
        ' Set value of variable to true/false based on whether the checkbox is selected or not
        If WindowsXPRETAIL.Checked Then
            strWindowsXPRETAIL = "true"
            else strWindowsXPRETAIL = "false"
        End If
    
        If WindowsXPVLK.Checked Then
            strWindowsXPVLK = "true"
            else strWindowsXPVLK = "false"
        End If
    
        If Windows7RETAIL.Checked Then
            strWindows7RETAIL = "true"
            else strWindows7RETAIL = "false"
        End If
    
        If Windows7VLK.Checked Then
            strWindows7VLK = "true"
            else strWindows7VLK = "false"
        End If
    
        If Office2010.Checked Then
            strOffice2010 = "true"
            else strOffice2010 = "false"
        End If
        If Visio2010.Checked Then
            strVisio2010 = "true"
            else strVisio20107 = "false"
        End If
       
        If Project2010.Checked Then
            strProject2010 = "true"
            else strProject2010 = "false"
        End If
       
       
        ' Set value of variables that will be used by the task sequence, then close the window and allow the task sequence to continue.
        env("OSDComputerName") = strComputerName
        env("OSDComputerDescription") = strComputerDescription
    
        env("OSDWindowsXPRETAIL") = strWindowsXPRETAIL
        env("OSDWindowsXPVLK") = strWindowsXPVLK
        env("OSDWindows7RETAIL") = strWindows7RETAIL
        env("OSDWindows7VLK") = strWindows7VLK
    
        env("OSDRETAILkey") = strRETAILkey
    
        env("OSDOffice2010") = strOffice2010
        env("OSDVisio2010") = strVisio2010
        env("OSDProject2010") = strProject2010
       
        window.Close
    End Sub
    
    </script>
    <body STYLE="font:12 pt arial; color:black; background-color: #FFFFFF">
    <span id = "List"></span>
    <p>Provide Computername:<br>
    <input type="inputbox" name="ComputerName"<br>
    <p>Provide Computerdescription:<br>
    <input type="inputbox" name="ComputerDescription"<br>
    <p>Select which Operating System Image to install:
    <br>
    <br>
    <input type="checkbox" name="WindowsXPRETAIL"> Windows XP RETAIL <br>
    <input type="checkbox" name="WindowsXPVLK"> Windows XP VLK <br>
    <input type="checkbox" name="Windows7RETAIL"> Windows 7 RETAIL <br>
    <input type="checkbox" name="Windows7VLK"> Windows 7 VLK <br>
    <br>
    <p>Provide RETAIL product key:<br>
    <input type="inputbox" name="RETAILkey" style="width: 200px"<br>
    <p>Select which Office Suite Components to install:
    <br>
    <br>
    <input type="checkbox" name="Office2010"> Office 2010<br>
    <input type="checkbox" name="Visio2010"> Visio 2010<br>
    <input type="checkbox" name="Project2010"> Project 2010<br>
    <br>
    <button accesskey=N type=submit id=buttonFinish onclick=ButtonFinishClick >Install</button>
    </body>
    </html>

    Task Sequence entry:

    Who can connect the dots for me?

    Currently I do not know how to supply multiple unattended.xml and Unattended.txt with the selected operating system images.

    and how to provide the computername, computerdescription and retail key to the deployment.

    Many thanks in advance!


    • Edited by Rens H Wednesday, September 26, 2012 6:08 PM added screenshots
    Wednesday, September 26, 2012 6:04 PM
  • Hi Rens,

    It took me a while to find this thread again.. anyway what I don't understand at this point is why you're going through all this trouble?

    To me it seems like you're trying to re-invent the wheel (as a figure of speech of course). MDT already provides you with a full fledged wizard in which you can enter all the information that you want to provide manually.

    The only thing that MDT doesn't provide out of the box would be an input field for the computer description and the product key.

    Since initially you referred to WinXP by itself, I figured it was just a matter of just deploying 2 kind of XP images with 1 task sequence, this by itself isn't much of an issue. However when you're starting to add different OS's to this same task sequence it will add a whole level of complexity, since MDT was not designed to function this way. So I'm not even going to try and come up with a method to think of sorting out multiple unattend.txt and unattend.xml files for 1 single task sequence.

    Instead you should create multiple task sequences, one per OS. Ensure the install applications task sequence step is enabled, and configured to install multiple applications (default setting), this will allow you to go through the MDT wizard, with first selecting an OS, along with some settings like computername and the software that should be installed.

    The two additional fields that you added in your frontend, you could add those on a custom wizard pane: http://blogs.technet.com/b/mniehaus/archive/2012/03/01/3474394.aspx

    Kind regards,

    Stephan Schwarz


    If one of these posts answered your question or issue, please click on "Mark as answer".

    My Blog | Twitter: @Schwarz_Stephan | MCTS, MCITP, MCSA, MCC-2011.
    How to configure Windows RE/OEM Recovery Partition with MDT


    • Edited by Stephan Schwarz Wednesday, October 3, 2012 7:27 PM
    • Marked as answer by Rens H Thursday, April 25, 2013 1:40 PM
    Wednesday, October 3, 2012 7:26 PM
  • Hi Stephan,

    Thanks for taking the time for your extensive answer. I'll guess your right. I'll just have to look in to two task sequences. Should be no problem.

    Thanks though


    Keep us posted, and if helpful please rate! Kind regards

    Thursday, October 4, 2012 11:27 AM