BDD 2007 – How do you do it?


I am often asked how I install and configure BDD 2007.

So I thought now was a good time to detail at a high level the process I go through to create and deploy operating system images using BDD 2007. This is not a step by step guide but more of a rant about how I do BDD and the reasons why.

The first thing I must say is that this is just my way of doing installing BDD. And I am sure that there are many people using BDD in different ways, which may well be better than mine. BDD is a very flexible framework and allows many ways to perform these tasks.

If you have any other suggestions about how to install BDD then I would love to hear from you. (I always like new ideas!)

So here we go….

I have broken the configuration process into a number of steps. Each step in the process is detailed in the flowchart below:  

image

So let’s go through each of these steps in more detail.

Install BDD 

Installing BDD is very simple, the steps I follow are listed below:


  1. The first thing I do when installing BDD is install the prerequisites. This includes the WAIK and MS XML. These can be installed from within the BDD Workbench but I install them manually beforehand.
  2. I then install BDD. I usually locate the distribution folder within a folder on D drive (or whatever drive is available) called BDD. I then use this folder to store all other BDD related folders. (this keeps things nice and tidy:)). For example I tend to create the distribution folder in D:\BDD\Distribution.

TIP – Make sure you are using BDD patch 1 as this includes a number of fixes.

Import Source Files

Before I talk about importing source files it is best to discuss my philosophy when creating images. I believe that the process you use to create your images should be fully automated (where possible) and easily repeatable. I NEVER build an image manually. Let me put this another way, the scenarios where you would need manually create your image are very rare and should be avoided.

One of the major strengths of BDD is its ability to fully automate the image creation process. If you want an image that is easy to recreate and manage then BDD is the tool for you.

A good example of why you should use BDD rather than manually building an image illustrated by image patching. Let’s say you manually created your image six months ago and now you want to update the image with extra patches. With BDD you would simply update your build task sequence and recreate your image, EASY. If you manually created your image you could take one of two approaches:


  1. You could manually recreate your build and then add the patches. 
  2. Deploy the image, manually update it with the latest patches and then recapture the image.

Neither of these approaches is recommended. The first will most likely introduce inconsistencies as it is very hard to create a repeatable image when you are doing it manually. The second process is BAD as you should not sysprep an image multiple times.

So with that rant out of the way let see how I import the required source files.

I import all of the files that will be used in the image creation and deployment process. These Source files are divided into four distinct groups:


  • Operating Systems – Any operating system source files used during deployment. This can include Vista source files or even Windows PE 2004/2005 if you are deploying images using SMS.
  • Applications – I use the applications option to import more than just applications. I create an application to for every task that I want to perform with BDD, from installing office to removing unwanted shortcuts from the start menu. By doing this I can easily keep a track of the tasks I have created and reuse them across multiple builds.
  • OS Packages – If I am deploying Vista then I import language packs and patches. BDD will then integrate these automatically during deployment.
  • Drivers – I import the drivers required drivers for each hardware model I will deploy. If I need to use driver groups then I import the drivers using the PowerShell scripts from my previous post here. 

TIP – Create a naming standard that clearly identifies applications. This makes management easier particularly as the number of applications increase. I like to apply a prefix to each application that defines its purpose. For example an application used to install Office 2007 would be called “INSTALL-Office 2007” and an application used to configure the sound scheme would be called “CONFIG-Sound Scheme”.


Create an “Image Creation” Build

A Build binds together a number of components, source files, configuration settings and the installation process (task sequence) defining how to create an image.  With this in mind let’s detail how I create a master image.


  1. I create a Build using the New Build Wizard, specifying the operating system imported in the previous step.
  2. I then add all of the applications that I want include in the image to the task sequence state restore phase.

Easy huh? It is really that simple. Of course you need to test the installation process and you are unlikely to get it right first time but it really is that easy.

The key point is that I always add the applications to the task sequence; I do not select them during deployment using the wizard. Using this method gives you control over when applications install. It also allows you to control when reboots occur.

TIP: Changes made to applications after they have been added to a task sequence are not propagated to the task sequence. So if you make a change then the best approach is to simply remove the application from the task sequence and add it again. The changes will then be applied to the build.

TIP: If the Master Image is to be deployed by SMS then make sure that you include the SMS client in the build.

Create and Capture master image

Now that I have created a build that defines how to create an image we need to execute the build and capture the image.

The first step in this process is the configuration of the Lab deployment.


  1. Configure the deployment point to automate the build process. I tend to to update the deployment point rules so that the only questions I am asked are the capture method and the build I want to execute.
  2. Ensure that the deployment point has been updated using the “Update” option (not “update (files only)”).

Once the deployment point is configured we can capture the image. 



  1. Boot to the LiteTouch_x86 image created – I tend to load the image onto a USB stick and boot from there but you could also use a Windows DS server or cut the image to a CD/DVD.
  2. From the Lite Touch Wizard I select the build I just created.
  3. From the Lite Touch Wizard I select the capture type. If it is SMS then I select prepare, for LTI deployments I select yes and specify where the image will be saved. The image will now begin to build.
  4. If we specified the capture to be LTI then the image will be captured automatically. However if the image is to be deployed using SMS then the final step in the process is to capture the image using the SMS capture CD.
  5. Once the image has been captured I then import it into the deployment workbench as a “Custom WIM”.

TIP: Instructions detailing how to fully automate the BDD Lite Touch Wizard are included in the “Configuration reference” document  included with BDD 2007. (Hint: look at the last two pages)


Create an “image deployment” build

One aspect of BDD that causes a lot of confusion is the purpose of Builds. Particularly as builds can be use to both create and deploy images. I prefer to think of builds is as task sequence that controls the execution of a series of scripts which has an operating system and settings associated with it. Task sequences can be used to control the deployment of an image or create an operating system image from scratch.

NOTE: The next version of BDD will no longer refer to builds; instead it makes the task sequence the center of the image creation process.

So with this in mind I create a build that is used to deploy the master image:


  1. Create a build using the New Build Wizard specifying the operating system image I imported in the previous step.
  2. I then update the task sequence adding the customizations required during deployment such as my SMS GUID reuse script (detailed in a previous post).

TIP: To avoid confusion over the purpose of each build use a naming convention that clearly identifies the builds purpose. For example a build that is used to create a master image could be called “Create-Master Image” and a build used to deploy the image could be called “Deploy-Master Image”.

Deploy the Image

The last thing we need to do is deploy the image we have created. While deployment methods can vary depending on the situation from using SMS to deploying via DVD or directly from BDD itself the overall principles remain the same.

I NEVER deploy an image using the lab deployment point. I always create another deployment point to deploy the image. If I am not using SMS OSD then I will create a Separate deployment point (Network) to deploy the image. This approach allows granular control over the rules used to deploy the image.

I always create a deployment process that is as automated as possible. This is achieved using rules to define values for BDD deployment properties. Where possible I use the BDD Database to define values for properties but I also use UserExit scripts and static assignment when required. Very occasionally I will prompt the user for information if required.

When deploying an image you need to ensure that the correct drivers and applications are applied during deployment. BDD manages the application of drivers for you but extra effort is required to manage hardware specific applications. To address this issue I import each application into the BDD Workbench and then associate it with the appropriate hardware type using the BDD database.

So here are the steps I follow to deploy the image:


  1. Create a Deployment Point to deploy the image
  2. Configure the Deployment Point with the rules required to automate the deployment process
  3. Configure the BDD database
  4. Create a database entry for each model type.
  5. Create a database entry for each computer
  6. Deploy the image…. NICE!

TIP: For further information on rules please refer to my previous post here.

TIP: For further information on prompting users for information during deployment then refer to my previous posts here and here and Johan’s post.

So that is how I create and deploy images using BDD. Low on detail and high on opinion I know, but this is an approach that I have found to be very successful. Hopefully you will be able to use some of these methods to make your deployments equally successful.


Disclaimer: The information on this site is provided “AS IS” with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the Terms of Use.

Comments (82)

  1. Anonymous says:

    I am very happy with the progress of the deployment guys blog so far. Hopefully you all agree that we

  2. Anonymous says:

    deVbug’ s Blog is powered by Textcube 1. 7. 7:

  3. Anonymous says:

    I have managed to get this model working. One gotcha I have seen is not importing the Vista drivers into the workbench. Windows PE 2.0 requires Vista network drivers as it is based on Vista.

    Thanks,

    Ben

  4. Anonymous says:

    Hi Five, (that is a childrens group my son likes :))

    I would really need to see your logs (C:minint) and the configuration files (bootstrap.ini and customsettings.ini) before I can help you with this issue.

    Thanks,

    Ben

  5. Anonymous says:

    Hi LC,

    The ZTI distribution does not use the Distribution$ share unless you specified it using the RESOURCEROOT value in the ZTI customsettings.ini. Have you specified this?

    Thanks,

    Ben

  6. Anonymous says:

    Hi Fernando,

    Can you open the command prompt in the bottom left corner of windows PE and run IPCONFIG.

    Do you get an ip address?

    Thanks,

    Ben

  7. Anonymous says:

    Hi Thomas,

    If you wait long enough does it get an IP address?   I know that this won’t help during deployment but it may help troubleshooting the issue.

    Thanks,

    Ben

  8. Anonymous says:

    The flat image does require less memory than the RAM disk but 256 is not quite enough.

    Thanks,

    Ben

  9. Anonymous says:

    Hi Bedreddin :),

    Where these images captured manually?

    If so then it is likely that they contain a MININT folder. Try removing this folder from the WIM images and see if they work.

    Thanks,

    Ben

  10. Anonymous says:

    Hi Greg,

    Are you deleting the MININT folder between deployments? If this is not deleted it can cause all sorts of ‘weird’ issues.

    If you are then you will need to look at the logs and see what previous task failed. The tatoo task should be run in the full OS hence the error.

    Thanks,

    Ben

  11. Anonymous says:

    Hi Martijn,

    This is caused by a problem described in KB 941595, and is evident after patching your image with any of several IE & Windows Defender patches.

    Thanks,

    Ben

  12. Anonymous says:

    Hi Jon,

    When you are asked for the setup files you simply need to point it to a Vista DVD. It will then do the rest.

    Thanks,

    Ben

  13. Anonymous says:

    Hi Fernando,

    If you open the command prompt available in the boot image can you ping the server?

    If not then you will need to add the apropreaite Vista drivers to the workbeench and then recreate your boot image by updating the deployment point.

    Thanks,

    Ben

  14. Anonymous says:

    Hi Niatross,

    This is by design. If you really wanted to save space then you could use imagex to copy the images from one file to the other and then import that image.

    Thanks,

    Ben

  15. Anonymous says:

    Do these images contain a minint folder?

    If so then you will need to remove it.

    Thanks,

    Ben

  16. Anonymous says:

    Hi Simon,

    You do not need to create a workbench at every site.

    I usually create a network deployment point on the central BDD server. This deployment point contains only the components that are need to deploy an image. I then replicate this DP out to all SMS DP’s that are used to deploy the image.

    When you refer to the BDD server in the customsettings.ini file. You can simply refer to he resourceroot value in the following manner:

         resourceroot=\%SMSDP%sharename

    This topic really deserves a blog post of it’s own :).

    Thanks,

    Ben

  17. Anonymous says:

    Hi Mike,

    This is what we call a replace scenario. Essentially an SMS job is run on the users old computer that uses USMT to get their user data and store it on the network. Then when you deploy the client to the new computer you restore is data using USMT.

    If you have a look at the BDD docs you will be able to find more information.

    Thanks,

    Ben

  18. Anonymous says:

    A very good blog post that points out potential pitfalls and a little bit of ‘best practice’ advice for deployments. Very handy to keep bookmarked for anyone just learning how to use BDD or for the seasoned veteran that is looking for some helpful tips

  19. Anonymous says:

    Wandering if you could help me.  I have installed MDT 2008 onto a "test" enviorment and got everything working smoothly, so i installed it onto our live enviorment.  I have loaded the system files and i am trying to load the core winxp sp2 files on to a pc but it comes up with the error unatted.txt is inaccessible or invalid.  I have checked the bdd.log and here is a snippit of it

    <![LOG[——  Performing unattended install ——]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Performing unattend install from \serverDistribution$Operating SystemsWindows XP Professional SP2]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Cleaning off old operating system]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Skipping C:Drivers]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Skipping C:MININT]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Skipping C:Sysprep]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Skipping C:_SMSTaskSequence]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Copying \serverDistribution$Operating SystemsWindows XP Professional SP2i386 directory to the local machine]LOG]!><time="14:34:35.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Copying \serverDistribution$$OEM$ directory to the local machine]LOG]!><time="14:36:48.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Property SourcePath is now = \serverDistribution$Operating SystemsWindows XP Professional SP2]LOG]!><time="14:36:48.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Executing BOOTSECT.EXE to install a boot sector]LOG]!><time="14:36:48.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[BOOTSECT.EXE return code = 1]LOG]!><time="14:36:48.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Boot sector updated, reboot is needed.]LOG]!><time="14:36:48.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Performing unattended install using command: "C:MININTsourcei386winnt32.exe" /unattend1:C:MININTunattend.txt /copysource:lang /syspart:C: /tempdrive:C: /debug4:C:MININTSMSOSDOSDLOGSdebug.log /noreboot]LOG]!><time="14:36:48.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[About to run command: "C:MININTsourcei386winnt32.exe" /unattend1:C:MININTunattend.txt /copysource:lang /syspart:C: /tempdrive:C: /debug4:C:MININTSMSOSDOSDLOGSdebug.log /noreboot]LOG]!><time="14:36:49.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Return code from command = 1]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[Unattended install failed, rc = 1]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LTIApply" context="" type="3" thread="" file="LTIApply">

    <![LOG[LTIApply COMPLETED.  Return Value = 1]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LTIApply" context="" type="1" thread="" file="LTIApply">

    <![LOG[ZTI ERROR – Non-zero return code by LTIApply, rc = 1]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LTIApply" context="" type="3" thread="" file="LTIApply">

    <![LOG[Non-zero return code executing command "X:DeployToolsX86TsmBootstrap.exe" /env:SAStart, rc = -2147467259]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LiteTouch" context="" type="2" thread="" file="LiteTouch">

    <![LOG[LTI deployment failed, rc = -2147467259  0x80004005]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LiteTouch" context="" type="1" thread="" file="LiteTouch">

    <![LOG[Property RetVal is now = -2147467259]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LiteTouch" context="" type="1" thread="" file="LiteTouch">

    <![LOG[CleanStartItems Complete]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LiteTouch" context="" type="1" thread="" file="LiteTouch">

    <![LOG[About to run command: MSHTA.exe "X:DeployScriptsWizard.hta" /definition:Summary_Definition_ENU.xml]LOG]!><time="14:37:24.000+000" date="04-10-2008" component="LiteTouch" context="" type="1" thread="" file="LiteTouch">

    <![LOG[Property WizardComplete is now = N]LOG]!><time="14:37:25.000+000" date="04-10-2008" component="Wizard" context="" type="1" thread="" file="Wizard">

  20. Anonymous says:

    Hi Johnny,

    We would need to have a look at the logs to determine what is going on here. 2147467259 is just a generic error code that means an error occured. The best place to look is in the BDD.log and SMSTS.log files. Generally these will tell you what is going on.

    Thanks,

    Ben

  21. Anonymous says:

    Hi Ted,

    When you import a custom WIM you are given the option to include the setup files. If these files are not specified and there are no Vista source files on the LAB deployment point then the build will fail.

    So reimport you image and when asked provide the vista setup files and everything should work.

    Thanks,

    Ben

  22. Anonymous says:

    Hi Arthur,

    You could create a custom screen that prompts you for this information. I have created previous posts on this topic.

    However you would then need to find a way to get this information into AD. I would suggest that a script that runs during the State restore phase would be the best way to do this.

    Thanks,

    Ben

  23. Anonymous says:

    Hi Mike,

    To do this you need some way to automatically determine if this computer should not need USMT.

    You could create some logic that sets the ComputerBackupLocation to equal None. This could be done using the BDD database.

    Thanks,

    Ben

  24. Anonymous says:

    Hi Ben. Thanks for your help and support.

    I can’t gen an IP address on client machine. But as I said, I put drivers into out-of-box group on BDD and update the LAB environment, and added new LiteTouch_x86.wim into WDS.

    Plus, I get NIC drivers from vendor site (3Com in my case) but I can’ get an IP address.

    Is it still a driver issue, or can it be something else?

    Thanks a lot.

  25. Anonymous says:

    Hi FerYo,

    It will be a driver issue. IS it a Netextreme II adapter?

    If so then you will need to download the special RIS driver.

    Thanks,

    Ben

  26. Anonymous says:

    Hi Blaine,

    There are many different issue that can cause this issue.

    Are you installing Vista and if so does your administrator password include any special characters? If it does then try removing them.

    Thanks,

    Ben

  27. Anonymous says:

    Hi,

    Have you tried using drivers obtained from Intel rather than the Dell site?

    Thanks,

    Ben

  28. Anonymous says:

    We have created a webpage on our intranet where you can fill out fields with Asset Tag, Computername, OU, Domain to join, Timezone etc. The Computername is the name under which the system will be put into Active Directory.

    There is one thing though I am not able to create. In AD all our systems also have a description (i.e. Dell Optiplex ArthurH). And we still have to manually add that description after the image is applied with BDD2007. Now what I would like to have is an entry on the intranetpage where you can fill out the Computer Description (just like the Computername) and that that info is also brought into AD.

    That way we are, again, skipping a manual action to be taken by our Helpdesk guys.

  29. Anonymous says:

    Hi Todd,

    Did you crate the image using the flags value?

    Vista SETUP, which MDT uses to deploy the custom WIM, requires that the image being installed has a “flags” value that matches the SKU of the product key (or setup key) used to install it.  It will filter out all images that don’t match; if no images remain, you get the error that you described.

    So, if the custom WIM image has no flags value at all, that error is guaranteed.  You can verify this using ImageX /info.  The error can also happen if the product key (or setup key, from pid.txt) doesn’t match the SKU as indicated by the “flags” value.

    Thanks,

    Ben

  30. Anonymous says:

    Hi Thomas,

    Are you using Cisco switches? If so then try enabling “spanning-tree portfast” on the switches and see if you still have the same problem.

    Thanks,

    Ben

  31. Anonymous says:

    Hi Eric,

    This could mean many different things. Could you send me a copy of the entire log.

    My email is ben dot hunter at microsoft dot com.

    Thanks,

    Ben

  32. Anonymous says:

    Hi Matt,

    This there anything interesting in the following log file?

    C:MININTSMSOSDOSDLOGSdebug.log

    Thanks,

    Ben

  33. Anonymous says:

    Hi Paul,

    You cannot import XP patches into the workbench. You can import Vista patches however. What I do to get around this problem is download all of the patches required for the build and then install them via vbscript. I then import these files as an application specifying the script to install the patches. I then add the application to the state restore phase.

    Thanks,

    Ben

  34. Anonymous says:

    Hi Five,

    The most common cuase of this problem is that the network drivers are not available in Windows PE.

    You can check is this is a problem by opening the cmd window in the bottom left corner of the screen and typing IPCONFIG.

    If you get no ip address then you will need to update your boot image.

    The best way to do this is to add the required network driver to the out-of-box drivers in the deployment workbench and then re-create you ISO image by updating the deployment point.

    Thanks,

    Ben

  35. Anonymous says:

    Hi Jared,

    Once you have prepared the usb drive you then simply copy all of the files in the content folder to the USB drive. It’s as simple as that :).

    Thanks,

    Ben

  36. Anonymous says:

    Hi Ben,

    We have created at series of Winpe 2.0 boot disk trying to get capture an image using ImageX, we have injected the new drivers into the boot.wim and have a disk that boots to the WinPE command Screen, but it will not pick up a IP address. We are using Dell Optiplex 755 with the Intel 82566 UD-2 NIC. Any help in this would be greatly appreciate.

  37. Anonymous says:

    I haven’t had a chance to test with Windows 2008 yet.

    Thanks,

    Ben

  38. Anonymous says:

    You could do as I detailed above and specify to capture the image but disable the capture task.

    I haven’t tried it but that should work.

    Thanks,

    Ben

  39. Anonymous says:

    Hi Tomas,

    The inject drivers task should inject the drivers automatically.

    So you say that it copied the drivers too the c:drivers directly but it does install them?

    Have you had a look at the setupapi.log file? This details driver installation.

    Thanks,

    Ben

  40. Anonymous says:

    Hi Niatross,

    BDD will handle this automatically. Try adding the following lines to your customsettings.ini file:

    DoCapture=YES

    BackupShare=\NYC-AM-FIL-01Backup$

    BackupDir=%ComputerName%

    You can also specify this information via the wizard.

    Thanks,

    Ben

  41. Anonymous says:

    It is likely that these applications are returning the code 3010 at the end of the installation. This means that the installation has completed but requires a reboot. By default the only return code that BDD determines as a success is 0. However you can specify other return codes as being successful.

    From within the task sequence you need to select the task that is causing the problem, then select the options tab and add the code 3010 to the success codes field. The success codes filed should then contain 0 and 3010.

    Thanks,

    Ben

  42. Anonymous says:

    Hi David,

    Here is how you create a bootable USB stick. Unfortunately you will need to update the deployment point and create a new WIM each time as BDD uses this wim to boot from.

    Insert the UFD into a computer running the Windows Vista operating system, and then type following commands in the Command Prompt window:

    diskpart

    select disk 1

    clean

    create partition primary

    select partition 1

    active

    format fs=fat32

    assign

    exit

    Note:The value of disk 1 is equal to the UFD’s disk ID. Ensure that you are using the correct disk ID.

    Thanks,

    Ben

  43. Good information.  I do just about the same process.  One thing I like that you do is the ‘Image Creation Build’ and ‘Image Deployment Build’ names that you mentioned.  I always strugle with naming my build so they make sense, and doing something like this will probably help a lot.

  44. Chad Ingles says:

    This type of summary is sorely needed in the BDD documentation. It takes a lot of reading to get to the point of coming up with this fairly simple sequence!

  45. Paul Delugar says:

    Fantastic blog! I am just learning BDD 2007 and it has given me some good tips. One question I have is, how do I perform a bulk import of all the Windows XP update patches into the work bench? We have WSUS on the networks we are dploying to, but I would rather the latest patchs were slipped into the Image creation installation. Is this best practise?

  46. Garry Trinder says:

    Ben,

    Thanks for this summary. I have configured the lab deployment point successfully, but I am running into an issue with the network deployment point on a different server.  Everthing is synchronized properly, I added the DeployRoot=\servershare to the Bootstrap.ini and Rules, but I am still unable to image properly.  

    The system boots to PE, runs the rule set correctly, adds the drivers, but then fails applying the WIM.  The error is:

    ERROR-Unable to find SETUP, needed to install the image \servershareOperating Systemsfolderimage.wim

    ZTI ERROR – Non-zero return code by LTIApply. rc=1

    ZTI ERROR – Non-zero return code by LTIApply. rc=1

    Non-zero return code executing command "X:DeployToolsX86Tsmbootstrap.exe" /envAStart, rc=-2147467259

    Any suggestions?

  47. Garry Trinder says:

    Thank you, that resolved it.  

    I used the original Vista DVD for the setup file location.  I then updated my deployment share and it worked great.

  48. ikszkom says:

    Hello Ben,

    just would like to ask that what’s the use of "LT flat boot" "LT bootable ramdisk" iso?

    I first thought that the flat image does require less memory, but still doesn’t work with 256MB.

    thank you very much

  49. Eric says:

    I can apply an image to a PC just fine, but when we try to image over that image again, I get the following error:

    ZTI ERROR – Non-zero return code by LiteTouch. rc=1

  50. Niatross says:

    I created a WIM via ImageX. I usually run sysprep before I capture an image with ImageX.

    This time I want to try something different.

    I want to try sysprepping my image after BDD has installed it.

    How could I do this? Should I put it in the BDD Task Sequence: "State Restore"?

    I do not want to do any capturing! I just want to lay down the image and THEN sysprep.

    Thanks, Niatross

  51. Niatross says:

    Hi Ben,

    Thanks for your help. I wanted to see if you knew of a way to sysprep without doing a capture.

    Is there any way with BDD to install an image, then sysprep without capturing?

    Thanks, Niatross

  52. aaron says:

    Hi Ben, love your site

    I wonder if you can help with a problem I’m having. My Lite Touch installations are failing when installing certain applications, namely the McAfee Framework Package and some of our internal applications:

    Non-zero return code by LiteTouch, rc = -2147467259

    These applications install correctly when I do them manually, using the same command, after the LTI has failed. The same error occurs wherever I put the installation in the Task Sequence.

    I’m running out of ideas!

    Thanks, Aaron

  53. five says:

    hi there..

    here is my problem.

    " Wizard error

    A connection to the deployment share ( vistaopkdemo$) could not be made. The deployment will not proceed."

    the error came when i boot the iso image.

    any idea???

  54. five says:

    hi ben

    did u mean this : BDD.log

    <![LOG[Property Debug is now = FALSE]LOG]!><time="20:04:16.000+000" date="11-09-2007" component="wizard" context="" type="1" thread="" file="wizard">

    <![LOG[Property WizardComplete is now = N]LOG]!><time="20:04:17.000+000" date="11-09-2007" component="wizard" context="" type="1" thread="" file="wizard">

    I take it from C:MININTSMSOSDOSDLOGS

    and another file i found there is WIZARD.LOG

    <![LOG[Property Debug is now = FALSE]LOG]!><time="20:04:16.000+000" date="11-09-2007" component="wizard" context="" type="1" thread="" file="wizard">

    <![LOG[Property WizardComplete is now = N]LOG]!><time="20:04:17.000+000" date="11-09-2007" component="wizard" context="" type="1" thread="" file="wizard">

    bootstrap.ini :

    [Settings]

    Priority=Default

    [Default]

    DeployRoot=\VISTAOPKdemo$

    customsettings.ini :

    [Settings]

    Priority=Default

    Properties=MyCustomProperty

    [Default]

    OSInstall=Y

    SkipAppsOnUpgrade=YES

    SkipCapture=YES

    SkipAdminPassword=YES

    SkipProductKey=YES

    tks for ur attention..i look forward ur favourable reply

    five

  55. MikeB says:

    Hi Ben,

    As usual, this is great stuff.  How do you normally handle redeploying computers to new users, where you do not want to backup or restore the previous users settings and files?  Right now we are requiring the support staff to clean the hard drive and then boot to the image install CD, but they want to leverage SMS for this so they do not have to make a desktop visit.

    Thanks,

    Mike

  56. MikeB says:

    Hi Ben,

    I am actually looking for a way to NOT backup and restore the users data.  In the scenario I mentioned, we would be redeploying a computer to a different user.  I could easily do this with a seperate SMS package, where I disable the backup and restore tasks in the task sequence, but if possible I would like to leverage my existing package.  creating a seperate program does not seem to work, as they use the same TS.xml file.  Or am I way off base here?

    Thanks,

    Mike

    Hi Mike,

    This is what we call a replace scenario. Essentially an SMS job is run on the users old computer that uses USMT to get their user data and store it on the network. Then when you deploy the client to the new computer you restore is data using USMT.

    If you have a look at the BDD docs you will be able to find more information.

    Thanks,

    Ben

    Hi Ben,

    As usual, this is great stuff.  How do you normally handle redeploying computers to new users, where you do not want to backup or restore the previous users settings and files?  Right now we are requiring the support staff to clean the hard drive and then boot to the image install CD, but they want to leverage SMS for this so they do not have to make a desktop visit.

    Thanks,

    Mike

  57. Niatross says:

    Sorry, about the last 2 post’s.  Had some typo’s in them, so I corrected them below. :+)

    ———————————————-

    Hi Ben,

    My question is concerning adding operating systems to BDD. I want to add both Vista and Vista VL (Volume License DVD’s) to the same directory (C:DistributionOperating SystemsWindows Vista). BDD doesn’t allow this. BDD wants to create a directory for the Vista DVD and a separate directory when you add the Vista VL DVD.

    How come it won’t allow you to add both together in the same directory?

    I know in WDS with single-instancing (RES.RWM – AKA:WIM file), it will allow all Vista versions to be added to a single image group (AKA: RES.RWM)

    How come BDD isn’t based on a single-instancing design that can add regular and VL DVD media to the same directory?

    I don’t like adding my Vista DVD versions to two separate directories in BDD. Anyway around this?

    Thanks, Niatross

  58. Jon Roderick says:

    Hi

    I’m having some trouble with the setup files and getting them into a custom WIM.  I have the DVD source files but which files should I actually be telling the wizard to use?

    Thanks.

  59. Jon Roderick says:

    Thanks Ben but I have a problem getting a DVD to the server (old hardware) – is there any other way of doing it?

    Cheers.

  60. Jon Roderick says:

    Ah, got it – good old DVD emulation software…

    Good blog – thanks for the pointers!

    Jon

  61. Jon Roderick says:

    I have another problem it seems – after unpacking the Server 2008 image files during setup, the server reboots, does a bit more and then comes up with the message ‘windows could not install the accepted licence terms onto the computer’.

    The only option is OK and the server reboots once more before displaying a ‘Windows installation cannot proceed’ warning.  I can then only reboot.

    Any ideas?

    Thanks.

  62. Martijn says:

    Hi Ben,

    I’m succesfully deploying Vista with some applications and drivers. This works perfectly!

    However, if i try to add updates using "OS packages" the setup fails. The following error is given:

    Setup failed applying image \serverDistribution$Operating SystemsWindows VistaSourcesinstall.wim.rc = 31

    ZTIERROR – Non-zero return code by LTIApply.rc = 31

    ZTIERROR – Non-zero return code by LTIApply.rc = 31

    Non-zero return code executing command "X:DeployToolsX86TsmBootstrap.exe" /env:SAStart, rc = -2147467259

    This error is slightly different than te one already mentioned.

    I can not imagine that after every time you add updates to a role you have to recapture the install.wim like you mentioned before with the almost simular error.

    Do you know how to solve this problem?

    Thanks in advance!

    Martijn

  63. Arthur says:

    Hi Ben,

    We are now working with BDD2007 successfully and it runs smoothly. There is just one thing I would like to do that I haven’t been able to create in some way.

    That is the computer description that ends up in Active Directory. The interface we have can let you specify an asset tag, and a computer name under which it will be entered in AD. However, I think it would be great if somehow we can also enter the Description for that computer. Is there a way to get that done?

  64. David says:

    Hi Ben,

    You mention using a USB stick as your bootable media.  I have read the directions to create a bootable USB stick, but now I can’t find the document that says how to do it (very frustrating).  Do you have a blog on how to create a bootable USB key for lite touch, or might you know a link to a whitepaper or document?  This sounds like a great solution for us that like to test small changes without having to rebuild the winPE wim or iso with a DP update 🙂  Thanks!

  65. thomas says:

    I am running BDD 2007.. and I have built an XP image to be deployed, when I boot from the cd I get the screen to deploy the XP Image but there is a dos window in the background that will not get a valid IP address, I have to quickly type IPCONFIG /renew and then it seems to work anyone know how to fix this issue?

  66. LC says:

    Great site Ben,

    Quick question for you on a ZTI install. We have a Intel NIC that fails at joining the domain during the post-install phase.

    We’ve double checked the following:

    No errors in any bdd or zti logs

    Drivers are available in the distribution$ share

    Driver PNP ID’s are listed and will install post failed-bdd install.

    Any ideas why the NIC drivers would not be available during the post install phase? It acts as if the drivers folder is not populated.

  67. JS says:

    Great instructions Ben, however, I have an odd problem…

    I have captured 4 different custom images (all on different hardware) through WDS, added all to BDD, created builds, created LAB and MEDIA deploy points, and updated both.

    I’m trying to use a DVD to deploy the images. My problem is that I can only successfully deploy 1 of the images, the other three fail:

    "The image ‘imagepathimagename.wim’ was not applied successfully by ImageX, rc = 2

    ZTI Error – Non-zero return code by LTIApply, rc=2

    ZTI Error – Non-zero return code by LTIApply, rc=2

    Non-zero return code executing command ‘X:DeployToolsX86TsmBootstrap.exe’ /env:SAStart, rc=-2147467259"

    Any ideas for me?

  68. paturner says:

    Ben,

    Have you ever heard of issues with Virtual Bus Devices and BDD? I have some new 755’s running the latest 57xx NICs, but when they get into PE they don’t pull an IP. I have loaded every Broadcom driver under the sun and updated my deployment point to no avail. So I created a media based install and loaded our image from DVD. Of course once Windows was loaded I saw that the driver injected just fine and the device was installed. Yet it still won’t pull an IP when doing a network boot. This is happening on the 755’s and on a Precision M6300 laptop.

    Thanks!

    PT

  69. paturner says:

    I got it to work…I had to import a very specific driver from Broadcom. They have a RIS only driver due to issues with the virtual bus device.

  70. Blaine says:

    Hello, Ben.  I am using windows deploy and everything was working well until I recieved this error:

    Operating system did not complete successfully.

    ZTI ERROR – Unhandled error retuned by LTIApply: Object required (424)

    Non-zero return code executing command "X:DeployToolsX86TsmBootstrap.exe" /env:SAStart, rc= -2147467259

    I am using Lite Touch for deployment with winpe. The error seems to come right after "install operating system" on the install process.  

    The only thing I have been playing around with is the customsettings.ini and task sequence.  Anything in there I may have messed up?

  71. Ben,  regarding the USB boot device,  after we do the  diskpart and other steps you outlined above, do we just copy over the .WIM file that PE created ? or are there specific steps necessary to take ?  thanks in advance.

    Jared

  72. thomas says:

    I am running BDD 2007.. and I have built an XP image to be deployed, when I boot from the cd I get the screen to deploy the XP Image but there is a dos window in the background that will not get a valid IP address, I have to quickly type IPCONFIG /renew and then it seems to work anyone know how to fix this issue?

    # re: BDD 2007 – How do you do it?

    Sunday, December 30, 2007 7:20 PM by BenHunter

    Hi Thomas,

    Are you using Cisco switches? If so then try enabling “spanning-tree portfast” on the switches and see if you still have the same problem.

    Thanks,

    Ben

    ================================================

    I have tried the spanning-tree portfast on out cisco switches, no change.  The image will deploy on any Dell PC, but most of our company is IBM and we cannot get any of them to boot up an obtain an IP address. Got any more ideas or suggestions?

  73. Tomas says:

    Hi Ben,

    I’m deploying Windows XP SP2 with BDD and the problem now is that not all drivers are installed automaticly.

    After deploying I see that even though sound, graphics and two networkdrivers (among others) are copied by BDD to c:drivers, the majority is not installed.

    I guessed that it’s because the

    "DevicePath" key in the registry only links to a few of the drivers that BDD pulled to the harddrive. Why hasn’t it linked to them all?

    So I commented out the "UpdateDevicePath(sSystemDrive)" function in ZTIdrivers.wsf and added a new task before the "Inject Drivers" task to import all the driverspaths to the "DevicePath" key.

    But it still doesn’t install most of the drivers in the C:Drivers directory.

    If I go into the device manager after deploying and tries to update graphics, sound and network drivers it finds them on it’s own.

    (Probably because of the task I added)

    How can I make the "Inject Drivers"-task install them automaticly?

    – Tomas

  74. thomas says:

    I guess I did not wait long enough, after enableing the spanning-tree portfast, because it is now obtaining an IP-Address.  Thanks Ben for your hard work!

  75. Tomas says:

    Hi Ben.

    It’s seems my mistake was that I first created and captured a XP-source files image without any drivers or applications, and from there tried to use the naked WIM file as a fundament to build new custom WIM images.

    At least it works much better now.

    By the way, is it possible to set the description field on a PC during the deployment process?

  76. greg says:

    Ben when using a cd the image seems to apply fine when taking the steps to use a flash drive it doesnt seem to work and throws a red screen with error

    ERROR-ZTITatoo state restore task should be running in the full OS, aborting

    ZTI ERROR – Non-zero return code by ZTITatoo,rc=1

    ###############################################

    #

    Environment Error! please restart wizard again!

    #

    ###############################################

    ZTI Error – Non Zero return code by ZTI Applications, rc=1 Non-zero return code executing command "x:deploytoolsx86TSMBootstrap.exe" env:SAContinue, rc=

    -2147467259

  77. Simon says:

    Hi Ben,

    can you clarify something for me please, i have several SMS sites and i wanted to know how i distribute and install images to my secondary sites using BDD

    I have been told that i have to install another BDD workbench on my secondary sites,but i dont think thats right.

    How do you do it??

  78. Todd says:

    Hi Ben,

    When I try to deploy a custom vista image the Lite Touch Installation hangs at Running action: Install Operation System.

    I also see a window in the background that is titled "Select the Operating system you want to Install" and then it lists "There are no images available."  

    The BDD.log indicates it found a matching setup in my sources folder. The last line of the log says about to run command: \*path*setup.exe then it hangs on ZTI Heartbeat: command has been running for X minutes (process ID 1892)

    any ideas on what i’m doing wrong? Thanks,

  79. johnny says:

    Hi Ben, I am having a problem while creating a usb bootable image. What I did: I created a custom image and I included the setup file from the top vista operating system and i created a task sequence and then I updated the media deployment point etc…. After finishing from those steps I copied all the files to the USB and tried to boot on my computer,the winpe lunches and start formating and creating partitions then injecting drivers..after this stage the media deployment crashes and I got this message: "Zti error-unhandled error returned by LTIApply:Object required (424) Non-Zero return executingcommand "X:DeploytoolsX86TsmBootstrap.exe" /en:SAStart, rc=-2147467259"

    Can you please help me to solve this problem,I really appreciate your assistance.

  80. bedreddin says:

    I have captured 4 different custom images (all on different hardware) through WDS, added all to BDD, created builds, created LAB and MEDIA deploy points, and updated both.

    I’m trying to use a DVD to deploy the images. My problem is that I can only successfully deploy 1 of the images, the other three fail:

    "The image ‘imagepathimagename.wim’ was not applied successfully by ImageX, rc = 2

    ZTI Error – Non-zero return code by LTIApply, rc=2

    ZTI Error – Non-zero return code by LTIApply, rc=2

    Non-zero return code executing command ‘X:DeployToolsX86TsmBootstrap.exe’ /env:SAStart, rc=-2147467259"

    Any ideas please?

  81. Fernando says:

    Hi Ben. Nice blog!

    I’m having trouble when client initialize WIZARD.HTA

    It always ask me for credentials. Even if I use Administrator, I get "A connection to the deployment share (\SRV1Distribution$) could not be made. The deployment will not proceed.".

    I read another user with the same issue. So, I put nic drivers into out-of-box, update LAB deployment point, but nothing happens.

    Over my D: drive I have the following structure:

    – Deployment

    — BDD

    — WDS

    I also have cheked NTFS permisions on volume D: and "everyone" and "domain computers" has read access.

    Finally, here is log files transcription, taken from client machine C:MININTSMSOSDOSDLOGS

    ———– BDD.LOG ———–

    <![LOG[ZTI ERROR – Non-zero return code by LiteTouch, rc = 1]LOG]!><time="16:54:18.000+000" date="04-10-2008" component="LiteTouch" context="" type=3 thread="" file="LiteTouch">

    <![LOG[ZTI ERROR – Non-zero return code by LiteTouch, rc = 1]LOG]!><time="16:54:18.000+000" date="04-10-2008" component="LiteTouch" context="" type=3 thread="" file="LiteTouch">

    ———– LiteTouch.LOG ———–

    <![LOG[ZTI ERROR – Non-zero return code by LiteTouch, rc = 1]LOG]!><time="16:54:18.000+000" date="04-10-2008" component="LiteTouch" context="" type=3 thread="" file="LiteTouch">

    <![LOG[ZTI ERROR – Non-zero return code by LiteTouch, rc = 1]LOG]!><time="16:54:18.000+000" date="04-10-2008" component="LiteTouch" context="" type=3 thread="" file="LiteTouch">

  82. Fernando says:

    Hi Ben.

    I’ve been working around with how to inject net drivers into WinPE. I really can’t do it yet. I did everything (i guess), and i’m still getting "A connection to the deployment share (\SRV1Distribution$) could not be made. The deployment will not proceed."

    I just don’t know what else to do. Can you help me please?

    Thank you.