Ben Hunter

Architect - Microsoft Enterprise Services - Redmond

June, 2007

Posts
  • Ben Hunter

    BDD 2007 - New BDD blog

    • 44 Comments

    Richard Smith one of my fellow Microsoft consultants from the UK has started a blog (finally!). Richard is very knowledgeable on everything about BDD and operating system deployment so I am sure you will find his blog very useful. 

    Richard has started his blog with two great video walk through's covering Lite Touch and Zero Touch deployment. This are very informative and should prove particularly useful to those new to BDD.

    It looks like I will have too put together my own video walk through's now just too keep up!

    I recommend that you subscribe to his blog as there is bound to be lots more great stuff coming... No pressure Richard;)

    http://blogs.technet.com/richardsmith

    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.

  • Ben Hunter

    BDD 2007 - Tips and Tricks - Sorting Applications

    • 24 Comments

    Hands up everyone who has tried to add an application to the task sequence and been frustrated by the fact that you can not control the order of the applications. Instead you have too scan through a list of applications that are ordered by the time you imported the application into the Deployment Workbench. Well this has frustrated me for a while and can become a real issue when you have a large number of applications to choose from.

    It turns out that it frustrated a fellow consultant (Mark Piggot) down here in New Zealand, so he got one of our development consultants (Mark Rees) to create a little utility (see attached file) that sorts the applications alphabetically. It does this by simply sorting the contents of the applications.xml file.Then as if by magic you will have much less trouble finding your application when adding it to a task sequence.

    To use this utility simply run the command:

    BddSort.exe -filename <path to control folder>\applications.xml

    This will then create a file called applications.xml.sorted which you can rename and use to replace the original applications.xml file.

    This application will change the applications.xml header to include the following information:

    <?xml version="1.0" ?>

     <applications xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    This should not be an issue but if it concerns you then you can simply update the header to look like this:

    <applications>

       

                                    Before                                                                                  After!!!

    NOTE: Please remember to backup the orginal applications.xml file before making any changes.

    NOTE: No warrantee of any kind, express or implied, is included with this utility; use at your own risk.

    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.

  • Ben Hunter

    BDD 2007 - Intel Mass Storage Drivers (iastor)

    • 22 Comments

    Everytime Intel releases a new mass storage chipset I receive the same call/email from from most of my customers and it goes something like this:

    "Hi Ben, I have just got a new machine and I can't deploy an image to it, do you know what is going on?"

    The problem they are having is that their Windows PE does not support this new chipset. The new drivers must be integrated into the Windows PE source they are using. This is not an issue for Windows PE 2.0 as BDD 2007 will automatically integrate the drivers for you. But with Windows PE 2004/2005 you must integrate the drivers yourself. 

    Well a new Intel mass storage chipset seems to have appeared so I though I might put my recommendations here to preempt the calls. These recomendations use the new Intel  chipset bas an example but can also be applied to any other mass storage driver.  This blog entry specifically recommends how to integrate drivers into Windows PE 2004/2005 using BDD 2007.

    Mass Storage drivers consist of a .SYS file that Windows PE references via the txtsetup.sif file. In order to integrate the driver into Windows PE we must identify the .SYS file that the driver uses and the additions that must be added to the txtsetup.sif file. The file that provides this information is the txtsetup.oem file that is shipped with the driver.

    The following steps should be followed to integrate a new Mass Storage driver into a Windows PE 2004/2005 source:

    Download the drivers

    The first part of the configuration process is the obtaining of the Mass Storage drivers. The drivers must be downloaded from the hardware vendor. The driver must include a txtsetup.oem file. The latest version of the Intel driver is located here. The version must match the Operating System that Windows PE is based on, for example:

    Windows PE 2004 - Windows XP

    Windows PE 2005 - Windows 2003 

    Identify the .SYS file

    Once the drivers have been downloaded the .SYS file must be identified.

    To identify the .SYS file

    1. Open the txtsetup.oem file downloaded in the previous section.

    2. Locate the [Disks] section, and record the name of the .SYS file specified in that section.

    The following excerpt from a txtsetup.oem file clearly identifies the .SYS file (iastor.sys).

         [Disks]

         disk1 = "Intel Matrix Storage Manager driver", iaStor.sys, \

    Gather the Plug and Play ID’s

    The PnP identifiers for the driver must now be identified. These drivers are of the form PCI\<PnP ID>.

    To identify the PnP ID’s

    1. Open the txtsetup.oem file downloaded in the previous section.

    2. Locate all lines that contain PnP ID’s, and record their values.

    The following excerpt provides an example of the PnP ID’s extracted from and Intel Mass Storage driver txtsetup.oem file.

         id = "PCI\VEN_8086&DEV_2922&CC_0106","iaStor"

         id = "PCI\VEN_8086&DEV_282A&CC_0104","iaStor"

         id = "PCI\VEN_8086&DEV_2829&CC_0106","iaStor"

         id = "PCI\VEN_8086&DEV_2822&CC_0104","iaStor"

         id = "PCI\VEN_8086&DEV_2821&CC_0106","iaStor"

         id = "PCI\VEN_8086&DEV_2682&CC_0104","iaStor"

         id = "PCI\VEN_8086&DEV_2681&CC_0106","iaStor"

         id = "PCI\VEN_8086&DEV_27C3&CC_0104","iaStor"

         id = "PCI\VEN_8086&DEV_27C6&CC_0104","iaStor"

         id = "PCI\VEN_8086&DEV_27C1&CC_0106","iaStor"

         id = "PCI\VEN_8086&DEV_27C5&CC_0106","iaStor"

         id = "PCI\VEN_8086&DEV_2653&CC_0106","iaStor"

    Copy the driver files

    To automatically integrate the driver files into Windows PE a folder structure must be created to support the added files.

    To create the folder structure

    1. Create the folder structure, .\Distribution\Extra Files\i386\System32\Drivers

    2. Copy the .SYS file into the newly created Drivers folder.

    3. Copy the txtsetup.sif file located in the Windows Source\i386 folder for the ZTI deployment point. (i.e. .\Distribution\Windows 2003 SP1\i386) to the folder .\Distribution\Extra Files\i386.

    Note  if you already use the extra files functionality then simply add the files into the current folder structure.

    Update the txtsetup.sif file

    Now that we have identified the .SYS file and the PnP ID’s for the Mass Storage driver we can update the txtsetup.sif file.

    To update the txtsetup.sif file

    1. Open the file .\Distribution\Extra Files\txtsetup.sif file using Notepad.

    2. Update the [HardwareIdsDatabase] section to specify each PnP ID.

    Note   This will require translating the information gathered from the txtsetup.sif file into the txtsetup.sif format. For example:

         id ="PCI\VEN_8086&DEV_2822&CC_0104","iaStor" would translate to PCI\VEN_8086&DEV_282A&CC_0104="iastor".

    The following excerpt provides an example of the PnP ID’s extracted from the Intel Mass Storage driver txtsetup.oem file and translated into the txtsetup.sif format.

         PCI\VEN_8086&DEV_282A&CC_0104="iastor"

         PCI\VEN_8086&DEV_2829&CC_0106="iastor"

         PCI\VEN_8086&DEV_2822&CC_0104="iastor"

         PCI\VEN_8086&DEV_2821&CC_0106="iastor"

         PCI\VEN_8086&DEV_2682&CC_0104="iastor"

         PCI\VEN_8086&DEV_2681&CC_0106="iastor"

         PCI\VEN_8086&DEV_27C3&CC_0104="iastor"

         PCI\VEN_8086&DEV_27C6&CC_0104="iastor"

         PCI\VEN_8086&DEV_27C1&CC_0106="iastor"

         PCI\VEN_8086&DEV_27C5&CC_0106="iastor"

         PCI\VEN_8086&DEV_2652&CC_0104="iastor"

         PCI\VEN_8086&DEV_2652&CC_0106="iastor

         PCI\VEN_8086&DEV_2653&CC_0106="iastor"

    3. Update the [SCSI.Load] section to identify the .SYS file. This should be in the format DriverName = FileName.sys,4

    The following excerpt provides an example of the .SYS file information as it has been added into the txtsetup.sif file.

         iaStor = iaStor.sys,4

    Note   The DriverName value must match the value specified in the HardwareIdsDatabase section. For example if the value is PCI\VEN_8086&DEV_2652&CC_0106="iastor" then the DriverName must be iastor.

    Update the deployment point

    Once the drivers have been setup we must then update the deployment point to create the updated Windows PE source files.

    To update Windows PE

    1. Click Start, then point to All Programs. Point to BDD 2007, and then click Deployment Workbench.

    2. Click Deploy, right-click Deployment Points, and then click Image Distribution Deployment Point.

    3. Click the Windows PE 2004/2005 tab.

    4. Set the Extra Directory to Add to that of the extra files location created in the previous step. (i.e. D:\BDD\Distribution\Extra Files)

    5. Right-click the newly created ZTI deployment point, and then click Update to force it to create the ZTI directory on the file system and generate the Windows PE source files.

    Update Windows PE in the SMS 2003 OSD Feature Pack

    To update SMS with the new Windows PE source files (created in the Deployment Workbench), complete the following steps:

    1. From the SMS Administrator console, locate Site Database, then expand Image Packages.

    2. Right-click Images Packages, point to All Tasks, and then click Update Windows PE.

    3. In the Update Windows PE Wizard, click Next.

    4. Browse to the generic Windows PE source folder (DistributionPoint\boot\source), click Open, and then click Next.

    5. Click Finish when the update is completed.

    Once you have completed all of the steps above then you simply need to re-create any SMS OSD Deployment CD's you may be using and update your OSD packages and the process is complete, EASY ;)

     UPDATE: For information on integrating these drivers into an XP image please refer to the following blog:

              http://blogs.technet.com/benhunter/archive/2007/07/12/bdd-2007-integrating-mass-storage-drivers-into-your-xp-image.aspx

    If you are looking for further information then the following article by Johan is a great place to start:

    http://www.deployvista.com/Blog/tabid/70/EntryID/18/Default.aspx

    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.

  • Ben Hunter

    BDD 2007 - Understanding BDD logs

    • 16 Comments

    Before you can troubleshoot BDD 2007 you need to clearly understand the many logs used during an OS deployment.

    If you understand what log to refer to and at what time you will find things that where once mysterious become understandable.

    With this in mind I thought I would provide this quick guide to BDD logs.

    BDD scripts automatically create log files. Each script creates a log file that matches the name of the script, for example ZTIGather.wsf creates a log file named ZTIGather.log. Each script also updates a common log file (BDD.log) that aggregates the contents of logs created by the BDD scripts.  BDD logs are located in the C:\MININT\SMSOSD\OSDLOGS folder during the deployment process. They are then moved at the completion of a deployment, their destination is dependent on the deployment type:

    • Lite Touch -  C:\WINDOWS\TEMP\BDDLogs unless the /debug:true option has been specified.
    • Zero Touch - C:\TEMP\SMSOSD or C:\SMSOSD unless the C:\MININT\Archive_OSD.SMS file is found.

    The BDD.log file is also copied to a network location at the end of the deployment if the SLShare value is specified in the Customsettings.ini.

    The BDD log format is designed to be read by TRACE32, part of the SMS 2003 Toolkit 2 - download here. I would strongly recommend that you use this tool whenever possible to read the logs as it makes finding errors much easier.

     

    The rest of this blog details the log files that are created during the deployment and examples of when they can be used when troubleshooting.

    BDD logs

    Bdd.log - The aggreated BDD log file.

    <Scriptname>.log - A log file created by each BDD script.

    Wizard.log -  Updated by BDD wizards.

    DeployUpdates_platform.log - Created when deployment points are updated. Also used when updating Windows PE. Useful when troubleshooting Windows PE driver integration issues. This log is located in the %temp% folder.

    SMSTS.log - Logs all of the transactions for the Task Sequencer. This will be located in %TEMP%, C:\Windows\System32\ccm\logs, or C:\SMSTSLog, depending on the situation.

    WPEinit.log - Logs the Windows PE intialisation process - Useful for troubleshooting error starting windows PE

    USMT Logs

    BDD 2007 automatically adds the logging switches to save the USMT logs to the BDD log file location

    USMTEstimate.log - Log created when estimating the USMT requirements

    USMTCapture.log - Log created when capturing data

    USMTRestore.log - Log created when restoring data

    Windows setup logs

    Vista

    This is a subset of the log files that are most useful for troubleshooting deployment issues, for more detailed information about Vista setup log files refer to this KB - http://support.microsoft.com/kb/927521.

    setupapi.dev.log - Windows setup log, located in C:\Windows\inf - Useful for investigating failed Driver installations.

    setupact.log - Windows setup log, located in C:\Windows\panther -  Useful for investigating failed installations.

    setuperr.log - Windows setup log, located in C:\Windows\panther - contains a list of errors that occurred during installation.

    netsetup.log - Windows setup log, located in C:\Windows\Debug - useful for troubleshooting domain join issues.

    XP

    setupapi.log - Windows setup log, located in C:\Windows - record inf installation actions - useful for investigating failed driver installations.

    setupact.log - Windows setup log, located in C:\Windows - Lists installation actions.

    setuperr.log - Windows setup log, located in C:\Windows - Details installation errors.

    netsetup.log - Windows setup log, located in C:\Windows\Debug, useful for troubleshooting domain join issues.

    OSD logs

    The following logs are created during the deployment phases, these logs are located in the C:\MININT\SMSOSD\OSDLOGS folder:

    OSDAgent.log - This is the primary log and should be the first place you look to determine what step failed

    OSDEnv.log - Indicates which OSD environment variables are set

    OSDInstallWIM.log - Logs image installation options

    IDUser.log - User notification log

    IDUserNotification.log - User notification log

    MachineState.log - Logs computer state migration information (computer name, IP Address, Registered Owner/Org

    WinPEInstall.log - WinPE installation information

    Exec.log - Logs ‘Run SWD Program’ actions

    scanstate.log - USMT scanstate log

    OSDLaunch.log - OSD Bootstrap - May contain errors if the Advanced Client Network Access account is not configured correctly.

    SMSCMT.log - Logs SMS Client migration information (site code, client GUIID)

    WinPEInstall.log -Windows PE installation information.

    OSDInstallWizard.log - Logs start-up operations.

    OSDShell.log - Launches the OSD Install Wizard.

    OSDSWDProgramExec.log – Logs Run SWD Program Actions.

    OSDUsmtScanstate.log – Logs Capture User State operations

    OSDUsmtLoadstate.log - Logs Restore User State operations

    OSDBootstrap.log - May contain errors if the Advanced Client Network Access account is not configured correctly.

    Note: The C:\minint folder is lost during the disk partitioning process. If you need to trobleshoot issues that occur before this point then disable the disk partitioning task in the task sequencer.

    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.

  • Ben Hunter

    BDD 2007 - Patch 1 released

    • 3 Comments

    Well the first patch for BDD 2007 has been released, download it here.

    This fixes a number of those niggling BDD issues, hopefully making your BDD experience a happier one!

    Here are my highlights:

    1. You no longer need to use the work around's I detailed here when deploying Vista patches with BDD. Patches can now be imported directly into the workbench as MSU files.
    2. USMT 3.01 is now downloadable from the workbench.
    3. The issues around the detection multiple PnP IDs on a single INF file line, when importing drivers into the deployment workbench.

     

    Be sure to use the correct installation command line as detailed by Michael Niehaus. If you do not install the patch in the correct manner you may find that it has changed your customized scripts or even updated the location of the distribution share in the registry. Here are some alternatives:

     

              1. Replace all the files with new versions from the patch, without disturbing registry entries:

             msiexec /update BDD2007_x86_Patch1.msp REINSTALL=ALL REINSTALLMODE=as

              2. Update without replacing modified scripts:

            msiexec /p BDD2007_Patch1_x86.msp REINSTALL=ALL /quiet

    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.

  • Ben Hunter

    BDD 2007 - BDD and PowerTab - Be teased no more!

    • 2 Comments

    I am sure that many of you a very keen to use the functionality demonstrated in the PowerShell Guy's BDD 2007 teaser. Well be teased no more..... it’s available!

    http://thepowershellguy.com/blogs/posh/archive/2007/06/14/powertab-0-93-powershell-tab-expansion-scripts-library.aspx

    This is a fantastic tool, so dive in and discover all of the BDD functionality exposed via PowerShell. 

    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.

  • Ben Hunter

    BDD 2007 - PowerShell Teaser

    • 1 Comments

    Those of you who are keen to leverage PowerShell to manage BDD will find the following teasers from the PowerShell Guy very interesting:

    Teaser #1

    Teaser #2

    They should help you understand the functionality that can exposed by PowerShell, I believe the potential is HUGE!

    Now hopefully Marc will release PowerTab 0.93 quickly because I am desperate to have a play!

    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.

Page 1 of 1 (7 items)