none
Windows Deployment Wizard - Deployment point options

    Question

  • Hello,

     

    I am building multiple deployment points to support our regions.  I am looking to have one boot disk for our techs. Anyone know of a way to list multiple deployment points in the wizard that a technician can "select" the deployment point they would like to use? (Instead of having to type in the \\server\share)

    Tuesday, July 17, 2007 7:27 PM

All replies

  • There is a "built-in" but lightly documented feature of the BDD LTI Deployment Wizard  that may be just what you are looking for.  In the BDD Lite Touch Feature Team Guide there is mention of a LocationServer.xml file which can serve the purpose you are indicating.  This feature was requested by internal Microsoft IT admins so does work & is supported in BDD 2007. In short, if you create a LocationServer.xml file formatted as follows:

     

    Code Snippet

    <?xml version="1.0" encoding="utf-8" ?>

     <!--
      
        The wizard will select a site if the URL in <QueryDefault> returns an XML like:
            <?xml version="1.0" encoding="utf-8" ?>
            <DefaultSites>
                <DefaultSite>8</DefaultSite>
            </DefaultSites>
        
      Example:
          <QueryDefault><![CDATA[http://main.contoso.com/DefaultSite.asp]]></QueryDefault>

        -->
      
    <servers>
     <QueryDefault></QueryDefault>
     <server>
      <serverid>1</serverid>
      <friendlyname>USA</friendlyname>
      <server1>\\usa-wds-01.usa.contoso.com\Distribution$</server1>
     </server>
     <server>
      <serverid>2</serverid>
      <friendlyname>Asia</friendlyname>
      <server2>\\jpn-wds-01.asia.contoso.com\Distribution$</server2>
     </server>
     <server>
      <serverid>3</serverid>
      <friendlyname>Europe</friendlyname>
      <server3>\\eu-wds-01.europe.contoso.com\Distribution$</server3>
     </server>
     <server>
      <serverid>4</serverid>
      <friendlyname>Contoso</friendlyname>
      <server1>\\servername3\Distribution$</server1>
      <server2>\\servername6\Distribution$</server2>
      <server3>\\servername9\Distribution$</server3>
      <server weight="3">\\servername3\Distribution$</server>
      <server weight="6">\\servername6\Distribution$</server>
      <server weight="9">\\servername9\Distribution$</server>
      <otherparameters>
         <!-- These Name=Value pairs will be added to the environment as-is -->  
         <parameter name="LocalTimeZone">8</parameter>
         <parameter name="AreaCode">425</parameter>
         <parameter name="DefaultLanguage">en-us</parameter>
      </otherparameters>
     </server>
    </servers>

     

    Rules:

    1. The LocationServer.xml file must be placed in the Litetouch.wim file in X:\Deploy\Control

    2. The BootStrap.ini file must *not* have a [default] DeployRoot value defined.

    3.  The wizard does *not* import in any updated customsettings.ini from the selected regional server, so if you want to import the settings, you’ll need to re-run ZTIGather.wsf after the wizard page. (See below note).

    4. Rudimentary "weighting" & "per-deploy-root" environment values are provided as well as shown in above code. If a server has twice the capacity of all other servers, then give it a Weight attribute of "2". Servers are chosen randomly from the list, and the odds of getting any server is:  ( The Weight ) / ( Sum of all Server Weights ). For example in the LocationServer.xml file above, the odds of getting \\servername6 are: "6 in 21".

       

    The code to evaluate  LocationServer.xml is found in "DeployWiz_Initialization.vbs".  

     

    NOTE: as mentioned above, you will need to re-run ZTIGather.wsf after evaluating these selections by adding the following bit of code to DeployWiz_Validation.vbs in the "Function ValidateDeployRoot" - between the commented code fragments 'Flush the value to variables.dat, before we continue' & '' Extract out other fields within the XML Data Object'.

     

    Code Snippet

    ' Process full rules

     sCmd = "wscript.exe """ & oUtility.ScriptDir & "\ZTIGather.wsf"""
     oItem = oSHell.Run(sCmd, , true)

     

    Hope this is enough to get you started, and let us know how/if it works for you!

     

    glenn fincher - Xtreme Consulting

     

    Wednesday, July 18, 2007 2:12 PM
  •  

    This specific "feature" is exactly what I need to allow the various locations to install the images from their local server\share location.

     

    However, my problem is that I'm unable to get the locationserver.xml file to be recognized. Since I'm not setting the deployroot value in the bootstrap.ini file I at least get a prompt asking for the deployment point location(server\share) but I'd really like to get a listing of the servers that I've entered into the locationserver.xml file.

     

    I have a feeling that I just don't have it in the proper folder. Under my BDD 2007 Distribution$ share, I have placed the file in the folder named "Control" where the bootstrap.ini file is located and then performed an "Update" on my deployment point. But when booting off of the BDD created ISO file for some reason it does not appear to be found or at least I'm unable to get a prompt for the location using the information I've entered. All I get is a prompt for input as to the location but nothing containing the sites I've entered in the xml file.

     

    Anyone have any thoughts on this?

     

    The LocationServer.xml usage is not documented anywhere that I can find other than a brief mentioning that it exists but nothing on how to use it other than this post.

    Friday, September 7, 2007 5:17 PM
  • Scott,

     

    This is possible. You will need to add the locationserver.xml file on the PE tab on the line "Extra Directory to add"  then you will need to edit DeployWiz_Initialization.vbs in your scripts folder. Open the file vd search for

    "Function InitializeDeployRoot" .

    Replace the line I have commented out with the one below it.

     

    Code Block

    'Set oXMLSiteData = oUtility.CreateXMLDOMObjectEx( property("DeployRoot") & "\control\LocationServer.xml" )

    Set oXMLSiteData = oUtility.CreateXMLDOMObjectEx( "x:\LocationServer.xml" )

     

     

     

    I will be writing a detailed blog about this shortly but in the mean time this should solve the issue without having to mount the iso and adding the directory to the boot.wim and then recompiling the iso with the updated wim. This scenario is not pretty.

     

    Thursday, October 25, 2007 6:21 PM
  • Yep, got that figured out about a week after I posted my question. Thanks for all your help. Wish there was more info on the actual XML options allowed within LocationServer.xml file though. Would appreciate any additional info on that if you have it.

     

    Thanks for your help.

     

    Thursday, October 25, 2007 6:42 PM
  •  

    What additional info are you looking for it to do? Once it has the correct deployroot setting your customsettings.ini should handle the rest.
    Thursday, October 25, 2007 8:55 PM
  • Basically any other options that can be included in the LocationServer.xml file. Like the example above that includes ServerWeight, Timezone, Areacode, etc. Are there any other options available for the locationserver.xml file in addition to server weight or the other parameters included in Glenn's reply above about the lightly documented xml file? He mentions that it's lightly documented but nothing exists on the syntax or parameter options outside of what Glenn wrote above(not that I can find anyhow but I'd sure like to).

     

    Thanks for all your help.

    Friday, October 26, 2007 12:06 AM
  • I would like to be able to "prepopulate" the username and domain fields in the connection box that shows up when selecting a distributionpoint from locationserver.xml. Information that previously existed in bootstrap.ini and where used pre customsettings.ini. 

     

    Without locationserver.xml it is possible to add username etc. to bootstrap.ini:

     

    UserID=installaccount

    UserDomain=userdomain.local

     

    It would be good to be able to add that info to locationserver.xml.

     

    Best Regards

    Johan

    Wednesday, January 30, 2008 4:19 PM
  • Scott,

     

    This is possible. You will need to add the locationserver.xml file on the PE tab on the line "Extra Directory to add"  then you will need to edit DeployWiz_Initialization.vbs in your scripts folder. Open the file vd search for

    "Function InitializeDeployRoot" .

    Replace the line I have commented out with the one below it.

     

    Code Block

    'Set oXMLSiteData = oUtility.CreateXMLDOMObjectEx( property("DeployRoot") & "\control\LocationServer.xml" )

    Set oXMLSiteData = oUtility.CreateXMLDOMObjectEx( "x:\LocationServer.xml" )

     

     

     

     

    I will be writing a detailed blog about this shortly but in the mean time this should solve the issue without having to mount the iso and adding the directory to the boot.wim and then recompiling the iso with the updated wim. This scenario is not pretty.

     

    This is a great answer for having multiple sites and allowing the user to choose!

    For anyone looking to do this with 2010 Microsoft deployment toolkit (I'm not sure on earlier versions) there is a better way to get LocationServer.xml into the iso or wim boot image.
    Go to your installation path of 2010 mdt generally C:\Program Files\Microsoft Deployment Toolkit\
    Go into the Templates Folder
    Find the file called LiteTouchPE.xml
    Edit the file
    Find - <!--Configuration -->
    After -  <Copy source="%DEPLOYROOT%\Control\Bootstrap.ini" dest="Deploy\Scripts\Bootstrap.ini" />
    Add line - <Copy source="%DEPLOYROOT%\Control\LocationServer.xml" dest="Deploy\Control\LocationServer.xml" />
    then update your deployment share. This will then include it in your boot ISO or WIM and you don't have to change the line above. You can leave it at
    Code Block
    Set oXMLSiteData = oUtility.CreateXMLDOMObjectEx( property("DeployRoot") & "\control\LocationServer.xml" )


    Tuesday, September 29, 2009 2:40 PM
  • This is the only entry I have found about how to insert the locationserver.xml in a good way. Using MDT 2010 you dont have to add below code, its allready in the code.

    NOTE: as mentioned above, you will need to re-run ZTIGather.wsf after evaluating these selections by adding the following bit of code to DeployWiz_Validation.vbs in the "Function ValidateDeployRoot" - between the commented code fragments 'Flush the value to variables.dat, before we continue' & '' Extract out other fields within the XML Data Object'.

    I have added the locationserver.xml to out "extra directory to add". I still have some default gateways in bootstrap.ini for the main sites and also the userid and password. So if you boot on a site which gateway does not exist in bootstrap.ini it will give you the locationserver.xml servers, you pick one and Next. After that the installation continue. First we did get the wizard pages after but they where pre-filled. That was because we had the Skipwizard=YES in customsettings.ini. After removing that and instead adding all the individual Skip*=YES we did not get any wizard pages except the first one.

    SkipAdminPassword=YES

    SkipApplications=YES

    SkipAppsOnUpgrade=YES

    SkipBDDWelcome=YES

    SkipBitLocker=YES

    SkipCapture=YES

    SkipComputerName=YES

    SkipComputerBackup=YES

    SkipDeploymentType=YES

    SkipDomainMembership=YES

    SkipFinalSummary=YES

    SkipLocaleSelection=YES

    SkipPackageDisplay=YES

    SkipProductKey=YES

    SkipSummary=YES

    SkipTaskSequence=YES

    SkipTimeZone=YES

    SkipUserData=Yes

     

    So I just wanted to update with this info because you can get the Userid and password automatically and you can use gateways in bootstrap.ini at the same time as using locationserver.xml.

     


    RDP customer
    Wednesday, September 22, 2010 10:07 AM
  • Henrik, thanks for your post, it cleared a lot up for me in the effort to make use of multiple deployment shares but I'm still unable to automate the credentials and get the drop down list from the LocationServers.xml file. I believe using DefaultGateways will work but I like the manual site selection better of the drop down list.  If I leave out of my Bootstrap.ini file the DefaultGateway for the site I'm in, I get the drop down list to chose manually but then I need to enter credentials manually. Is there a way to have manual site selection drop list and automated credentials?

    Dan
    Thursday, September 23, 2010 8:31 PM
  • Hi..

    I lied about credentials..sorry. Why did I thought it worked? Because we have version control (because we also use media DVD/USB/ISO) and to check the version we have a script that runs at the beginning in WinPE and it maps a share on the deployment server. So we allready have a connection to the server in main site so when selecting that server in the wizard page we dont get any credentials pop up. We do get it for all other installation servers.

    I have now also changed my setup a bit. I just relized that MS have documented this in MDT help, where to put the locationserver.xml ("yourextradirectory"\deploy\control) and that means you dont have to edit any vbs file at all.

    Well if you want to do the manual selection your deployment server cannot be in bootstrap.ini. Either you use gateways as we do in bootstrap or dont use it at all..

    So looking below. if you run the installation on a subnet that is not below you will get the wizard page and can then select server from the locationserver.xml

    [Settings]

    Priority=DefaultGateway,Default

    [DefaultGateway]
    164.4.28.1=SESA
    164.4.30.1=SESA
    164.4.32.1=SESA
    164.4.66.1=SESA
    164.4.172.1=SESA
    164.4.192.1=AUSM
    164.4.162.3=USFL
    138.103.128.1=DEDU
    164.4.190.2=ITMI
    164.4.100.1=GBHO
    164.4.92.1=SGSG
    164.4.198.1=JPKO
    138.103.140.1=CNLF
    138.103.148.1=ZAJP


    [SESA]
    DeployRoot=\\server1\DeploymentShare$

    [AUSM]
    DeployRoot=\\server2\DeploymentShare$

    [USFL]
    DeployRoot=\\server3\DeploymentShare$

    [DEDU]
    DeployRoot=\\server4\DeploymentShare$

    [ITMI]
    DeployRoot=\\server5\DeploymentShare$

    [GBHO]
    DeployRoot=\\server6\DeploymentShare$

    [SGSG]
    DeployRoot=\\server7\DeploymentShare$

    [JPKO]
    DeployRoot=\\server8\DeploymentShare$

    [CNLF]
    DeployRoot=\\server9\DeploymentShare$

    [ZAJP]
    DeployRoot=\\server10\DeploymentShare$


    [Default]

     

    SkipBDDWelcome=YES

    UserDomain=
    UserID=
    UserPassword= 

     


    RDP customer
    Friday, September 24, 2010 10:59 AM
  • I did some further testing to confirm that the DefaultGateway configured in the Bootstrap works, reliably. I also named my Task Sequences to match the site where the images are stored as a way to confirm we're not transferring 5 gigs across the wan. So, with this configuration, I'm no longer presented with a credentials prompt and I can skip the manual site selection step.

    Thanks again for sharing your findings.

     

    Dan

    Friday, September 24, 2010 3:27 PM
  • We have found a much better way of doing all this now. And much easier. We have a website today where we pre stage the computers into MDT and AD. Off course you can do all this manually in MDT and AD but no thanks.

    So we will now from this website choose what installation server to install from. We hardcode that list. We write the computer into SQL and for the value serverA we write the installation server. Then from bootstrap you just do this config.

    I just takethe same SQL parameters that is in customsetting.ini and put it into bootstrap.ini. The SQL query for the computer will then be done from bootstrap and we can get the servera value which is the installation server.

    Great ha..I think this was very neat. And easy also

    [Settings]
    Priority=Default,CSettings,Main

    [Default]
    UserDomain=domain
    UserID=
    UserPassword=

    [Main]
    DeployRoot=\\%ServerA%\DeploymentShare$
    SkipBDDWelcome=YES

    [CSettings]
    SQLServer=server.domain.com

    Database=TestDeployment
    Netlib=DBNMPNTW
    SQLShare=Logs$
    Table=ComputerSettings
    Parameters=UUID, AssetTag, SerialNumber, MacAddress
    ParameterCondition=OR

     


    RDP customer
    Tuesday, September 28, 2010 8:45 AM