USB Automatic Installation System

Document Sample
USB Automatic Installation System Powered By Docstoc
					USB Automatic
Installation System
Networked Software Systems Laboratory
Eyal Koren & Leeor Langer
331331422/
1 Contents
1.                    Introduction                   5
1.1.     Abstract                                    5
1.2.     Project Goal                                5
2.                    Technology Overview            5
2.1.     Unattended installation and quiet installation   5
2.2.     Windows Automated Installation Kit (WAIK)        5
2.3.     Windows preinstallation environment (WinPE)      6
2.4.     HTML Application (HTA)                      6
2.5.     Cascading Style Sheets (CSS)                6
2.6.     SysPrep                                     7
2.7.     Visual Basic Scripting (VBscripts)          7
2.8.     Windows Management Instrumentation (WMI)         7
2.9.     DiskPart                                    8
2.10.    Images capture, Windows imaging format, ImageX and deployment   8
2.11.    USB 2.0                                     8
2.12.    Windows PE utility (Wpeutil)                8
3.                    Design                         9
3.1.     Basic Design Requirements                   9
3.1.1.   USB Data Source                             9
3.1.2.   Dynamic system                              9
3.1.3.   Flexible system                             9
3.1.4.   Minimum user's interference                 9
3.1.5.   GUI                                         9
3.2.     General design                              10
3.2.1.   GUI                                         11
3.2.5.   Data Base                                   12
3.3.     Specific design                             12
3.3.1.   Gui general scheme                          12
3.3.2    GUI detailed scheme:                        13
4.1.     GUI Stages                                  14
3.5.     Data Base                                   18
3.5.1.   Database levels For OS:                     18
6.1.1.   Database levels For Applications:           19
4.                    Administrator's related code (exposed code) 19
4.1.     OS for unattended installation              19
4.2.     OS for Image deployment                     20
4.3.     Applications.                           21
5.                     End User Guide            23
5.1.     Troubleshooting:                        23
6.                     Project Evolution         24
6.3.     Acquaintance with the Technologies      24
6.1.1.   Manual Installation of Operating Systems 24
6.1.2.   WAIK                                    25
6.1.3.   Unattended Installations                25
6.1.4.   WinPE                                   25
6.1.5.   HTML                                    25
6.1.7.   DiskPart                                25
6.1.8.   VBScript                                25
6.1.9.   Quiet Application Installation          25
6.3.     Framework Design and Implementation:    26
6.4.     Comprehensive Implementation:           27
6.5.     Debug:                                  28
6.1.1.   Capturing an image                      28
6.1.2.   Drive query                             29
6.1.3.   Unattended Installation Process         29
6.1.4.   Partitioning Tool                       29
6.1.5.   Rebooting WinPE                         29
6.1.6.   Applications                            30
2.     Figures
Figure1 ...................................................................................................... 10
Figure2 ...................................................................................................... 11
Figure3 ...................................................................................................... 12
Figure4 ...................................................................................................... 12
Figure5 ...................................................................................................... 13
Figure6 ...................................................................................................... 14
Figure7 ...................................................................................................... 14
Figure8 ...................................................................................................... 16
Figure9 ...................................................................................................... 17
Figure11 .................................................................................................... 18
Figure11 .................................................................................................... 18
Figure12 .................................................................................................... 20
Figure13 .................................................................................................... 21
Figure14 .................................................................................................... 22
Figure15 .................................................................................................... 23
Figure 16 ..................................................................................................... 26
Figure17 .................................................................................................... 26
Figure 18 ..................................................................................................... 28
1. Introduction

  1.1.      Abstract
     The USB AUTOMATIC INSTALLATION SYSTEM provides the
     user a fast and easy way to create a full working station set in
     minimum effort and time, using only a USB device.


  1.2.      Project Goal
     The goal of the project is to build a dynamic automatic working
     station installation system, that can work from a portable USB.
     In additional to that, the system should work unattended, and by
     that we mean that after supplying the system needed data and user's
     preferences, setting the working station would be fully automatic.
     The system's main target audience are computer farms and lab's
     technicians, thou it can also be used by private computer owners.


2. Technology Overview

  2.1.      Unattended installation and quiet installation
     Unattended installation refers to booting an operating system
     installation in an automatic way, with all the relevant data supplied
     by the user at the beginning of process.
     Quiet installation refers to automatic installation of applications
     with no user's actions required through all of the process.



  2.2.    Windows Automated Installation Kit (WAIK)
     The WAIK is a collection of tools and technologies produced by
     Microsoft designed to assist in the boot and deployment of
     Windows operating systems.
     The WAIK was first introduced with Windows Vista.
     The main components of WAIK are the WinPE, SysPrep and
     ImageX.
     Example: Creating an unattended file for Vista.
2.3.      Windows preinstallation environment (WinPE)
   WinPE is one of the components of the Windows Automated
   Installation Kit (WAIK).
   WinPE is a lightweight version of the common operating systems,
   and it is used as significant preinstallation tool.
   WinPE main roles are to prepare the computer for windows
   installation, to copy disk images from source and to initiate
   windows setup.
   WinPE can be launched from a variety of media, such as CD's and
   USB devices.
   WinPE has the powerful capability of booting from a RAM disk,
   Which enables it to make the necessary disk related operations.
   The WinPE can be customized by selecting the packages added to
   it from a variety of packages, like HTA package, scripting package
   etc.
   WinPE can also be customized by changing the booting prefrences.
   Example: Used as a "launch pad" for running our GUI +
   environment.


2.4.      HTML Application (HTA)
   HTA is a Microsoft Windows application written with HTML and
   Dynamic HTML.
   HTA was introduced by microsoft.
   In addition to the attributes of HTML, HTA supports files
   operations (creating, editing and removing) and registry entries.
   HTML applications do not require compilation and are supported
   in custom WinPE packages.
   Example: This is our choice of technology for creating our GUI.


2.5.      Cascading Style Sheets (CSS)
   CSS is a style sheet language which controls the presentation
   features (looks and formatting) of the web page (in our case the
   HTA).
   CSS is designed primarily to enable the separation of document
   content (written in HTA) from the document's presentation.
   This separation provides more flexibility and control in the
   specification of presentation characteristics. It also simplifies the
   code by separating the elements in the code which are functional
   and those which are graphical.
   Example: Used for our GUI's graphical capabilities.
2.6.      SysPrep
   SysPrep is one of the components of the Windows Automated
   Installation Kit (WAIK).
   SysPrep is used to prepare the operating system for capture disk
   and disk deployment.
   SysPrep also "generalized" the unique characteristics of each
   computer, such as computer name and security identifiers, that they
   can be changed after deployment.
   Example: Used before capturing a system image for deployment.


2.7.      Visual Basic Scripting (VBscripts)
   VBscript is a scripting language, developed by Microsoft.
   VBscript's syntax reflects its origin as variation of Microsoft's
   Visual Basic programming language.
   A VBscript script must be executed within a host environment,
   such as Windows Script Host (WSH) and Internet Explorer (IE).
   VBscripts enables writing executable functions, also in
   HTML/HTA pages.
   The use of VBscripts in HTA enables the accessibility of the
   scripting to files and folders operations, such as creating, deleting,
   reading and editing.
   The advantage of using in the project the VBscripts instead of other
   languages (java script, TCL …), is the compatibility to Microsoft's
   components and full support in custom WinPE and its powerful
   scripting capabilities.
   Example: Our choice of technology for scripting functionality. This
   refers to all processes and functions used by the GUI for enabling
   the various unattended installation procedures.


2.8.     Windows Management Instrumentation (WMI)
   WMI is a Management component that defines a set of
   environment-independent specifications which allow management
   information to be shared between management applications.
   For example, WMI allows scripting languages like VBScript to
   manage Microsoft Windows personal computers and servers.
   WMI also provides set of functions that can be used with scripting
   languages.
   Example: Used for low level function calls such as querying HD
   information.
2.9.      DiskPart
   Diskpart is a command-line hard disk partitioning utility.
   In addition to creating the new partitions, Diskpart can also format,
   clean, activate and assign partition letter.
   DiskPart supports the use of scripts to automate it's usage.
   Example: Used for formatting, partitioning and more.


2.10.    Images capture, Windows imaging format, ImageX
    and deployment
   Image capture refers to copying a disk, bit by bit and.
   The capture is stored in Windows Imaging Format (WIM), and can
   Be deployed later on other disk.
   ImageX is the command-line tool used to create, edit and deploy
   Windows disk images.
   ImageX is a part of the WAIK.
   Images can be mount to add or remove data and then be unmount
   to have a new image.
   The deployment process is based on the Hardware abstraction layer
   (HAL), which refers to the seperation between the physical
   hardware and the software running on the computer.
   The main advantage of the HAL is hiding diffrences in hardware,
   from the operating system's kernel.
   The HAL was first introduced in windows vista.
   Example: Used for capture and deploy.


2.11.     USB 2.0
   USB 2.0 is high speed data transfer protocol.
   Using USB device as the data source of the system is possible due
   to the USB 2.0 protocol speed.


2.12.    Windows PE utility (Wpeutil)
   The Windows PE utility (Wpeutil) is a command-line tool that
   enables you to run various commands in a Windows PE session.
   For example, you can shut down or restart Windows PE, enable or
   disable a firewall, set language settings, and initialize a network.
   Example: Used for rebooting.
3. Design

  3.1.      Basic Design Requirements

     3.1.1. USB Data Source
     The source of all data of the project and the system itself are all
     located on the USB.

     3.1.2. Dynamic system
     The system must be dynamic so new operating systems and
     applications can be added to data source (USB) and be ready for
     automatic installation with the minimum adaption needed and in
     elegant way.
     The system must recognize the installation options in a dynamic
     way and present to the UI the options for the full working station
     set.


     3.1.3. Flexible system
     The system must support operations needed for future
     expandability. For example, adding new applications or OS options
     that require changing the code minimally, in specific predefined
     sections, in a user-friendly way, without knowing the full system
     code.
     Parts of the code must be exposed to the System Administrator in
     order to support future OS and applications releases and updates.


     3.1.4. Minimum user's interference
     The system should be fully independent so that after entering in the
     beginning of the process the needed data such as OS type, wanted
     applications, computer's name and password (in the unattended
     process), the system will work independently until the creation of
     the full working station.

     3.1.5. GUI
     The system's user interface must be user friendly, and easy to use.
     the GUI should take the user each step at a time in designing his
     wanted workstation and must be clear to first time user as well as
     to the expert user.
    3.2.         General design

           The general design of the system is composed of 4 main blocks,
           which interact one with the other.
           The dynamic and flexible features of the system force all the 4
           blocks to interact with each other.




Figure 1
             3.2.1. GUI
             In order to create a clean and organized code, we split 3
             functionalities of the GUI to 3 areas in the code.

             3.2.2. HTML\HTA Framework:
              Our GUI is an HTML application in itself. HTML is the
             "backbone" of our project.

             3.2.3. Graphics:
             The user controls and graphics of our GUI are implemented in
             CSS.

             3.2.4. Scripting:
             All the actions performed by the GUI are implemented in
             VBScript. This includes temporary file creation, partitioning etc.


                                        Framework
                                           HTA




                                        GUI
                                                           Scripting
                      CSS Graphics
                                                           VBScripts




      User                                                             Actions performed by GUI

Figure 2
           3.2.5. Data Base
           Data base contains all the data needed for the installations and how
           to call this data.
           The GUI's directory hierarchy enables us an orderly method for
           sourcing the appropriate OS or applications.




                                                                                Level 1


                                                                    Level 2
Figure 3


       3.3.      Specific design
           3.3.1. Gui general scheme
           The system's GUI is composed of several stages.
           During each stage the user much choose between a few options.
           After pressing the "next" arrow the next stage is instantiated.
           This stage may be instantiated in different ways, depending on
           choices previously made.
           The GUI may be divided to the following stages:



                                                                                        MS
                                                       Reboot                installion\deployment
                                                                                      process




                 Figure 4
             3.3.2 GUI detailed scheme:



                  Welcome
                                               Partition
                   Screen



                OS Specific                   OS General
                 Choice                         choice

               Unattended         Image
               Installation    installation




           Unattended               No user                 User Info step
            File Data                data


            application             No                     Applications step
           for selection        applications



                       ReBoot
Figure 5
           4.1.       GUI Stages

              3.4.1. Welcome screen:
                  The Welcome screen contains basic system information and
                  instructions.

              3.4.2. Partition:
                   In this step, the user is given the data of the disks (name,
                  sizes, current partitioning) and select the partitions wanted and
                  partitions options (formatting method, file system etc.).
                  The partition choices made in this step are used as input for
                  creating PartitionScript.txt. This temporary script is called by
                  the DiskPart utility after the user completes filling in the GUI.
                  All the partition related files are located in the Partition folder.




                  Figure 6

                      The next scheme, describes how our partitioning works.
                      After the user supplies the data, a temporary script is created
                      from the template script. The temporary script contains all
                      the relevant information supplied by the user. After the user
                      completes filling in the GUI form, diskpart is called with the
                      temporary script.


                                                                                         DiskPart




Figure 7
      This same process applies to the Clean, Create and Delete
      options. The difference is that these 3 occur on-the-fly and
      not adjacent to the installation process.
      Refresh function is called after each partition action. The
      ‘Current Partition Table’ is composed of parsed WMI calls
      for system information.

3.4.3. OS general choice:
All the OS offered for installation in level 1 (as shown in figure X)
are loaded to the current page, for the user's selection.
The OS options are dynamically loaded from the OS folder by the
same name.

3.4.4. OS specific choice:
According to level 1 selection, the level 2 relevant data options are
loaded to the current page, for the user's selection.
As in last step, the options are loaded dynamically.
Both general and specific OS selections are concaternated to a
global variable called strOS. This variable contains the path of the
specified OS and will be used in the installation\deployment
process.

3.4.5. User info:
In this step, the user provides, if asked, data such as computer
name, password, product key etc.
The data is asked only when the OS installation chosen was
unattended.
If the installation is a deployment one, no data is required from
user.
The data from user is used to create a temporary unattended file.
The unattended file template is located in the OS folder. After
completing the GUI, the unattended installation call is used with an
"unattended" flag and the temporary unattended file is sourced
also.
3.4.6. Applications:
If the process is unattended installation, the system will offer the
user a variety of applications to choose from for installation. This
collection of application are found in the "Apps" directory and is
loaded dynamically, like the rest of the GUI stages.
If the process is image deployment, the application selection will
not be possible.
In this stage, the selection of applications will generate a batch file
(all_inst.bat) that contains all the command lines of each
application installation. The all_inst.bat file will later be executed
and will install all the applications in serially, without contention.
The system currently has 3 options for applications.
The addition of new applications for installment is described in the
administrator section, but it's worth mentioning that adding
applications is easy and intuitive due to the flexibility demands of
the project mentioned above.




                  Figure 8
3.4.7. Reboot:
After all steps are completed, the system starts several processes
and upon completion, the WPEutils reboot function is called.
This step is different for unattended installation and for
deployment.
           Unattended installation:

                                                                 Launch
                 Launch       unattended
                                                 Diskpart      Installation       Reboot
               unattended     file creation
                                                                  script

            Unattended       Unattended       Temporary      This script      Wpeutils
            Process          file is          partition      calls an         reboots the
            starts :         created with     script is      executable       system.
            This             the user's       created.       file named
            function         inputs.          Diskpart       winnt32.exe,
            calls all the    (winnt.sif)      launches       which
            functions                         with this      initiates the
            needed for                        Partition      installation.
            unattended                        script.
            installation.



           Image deployment:

                                                                Launch
                Launch                            Image
                                Diskpart                      Deployment         Reboot
              Deployment                        Operations
                                                                 script


           Deployment       Temporary         Operations     ImageX           Wpeutils
           Process          partition         related to     utility is       reboots the
           starts :         script is         Image          called with      system.
           This             created.          chosen for     the
           function         Diskpart          deployment.    appropriate
           calls all the    launches                         flags for the
           functions        with this                        current
           needed for       Partition                        image.
           deployment.      script.

Figure 9
              3.5.     Data Base
                 As described before, the database is composed of data levels as
                 shown in scheme :




                                                                            OS
                                                                          Database




                  Level1
          -                              XP                                      Vista                 windows7



     Level2                 unattended                                                                  Windows7
                                                  ImageXP         ImageVista1            ImageVista2
                               XP                                                                        Image


                Figure 10


                                              applications



         Level1
                             Winrar                              Winzip



                   Winrar             Winrar            Winzip             Winzip
Level2
                    Setup             setup              Setup             setup
                  command                              command

              Figure 11

                  3.5.1. Database levels For OS:
                  Level1: contains all OS options for the user (XP,Vista,
                  Windows7…).
                  Level2: contains all versions of the Level1 OS choices
                  (SP1,SP2,images…).
     6.1.1. Database levels For Applications:
     Level1: contain all applications available for installation.
     Level2: contain all application setup files (usually an executable)
     and setup commands for quiet installations (bat file with
     appropriate flags).


4. Administrator's related code (exposed code)

   The system design must support easy addition of new OS and
  applications with no code modification. Here we will detail the steps
  for adding new components to the system.


  4.1.     OS for unattended installation

     The distinction between OS Image and OS for unattended
     installation is that every OS for unattended installation contains the
     phrase "unattended" in its name. This is the naming convention we
     used to make a distinction between unattended installation and
     image deployment.

     Unattended installation is an old technology that simulates the
     installation process without the need for a user during the process.
     Deployment of an image is possible only after capturing this
     image.Before Vista, image capture was hardware dependant, so an
     image from a certain computer cannot be deployed to another
     computer.
     Vista introduced the HAL- Hardware Abstraction Layer. This layer
     removes the HW-SW(OS) dependency. This means that we can
     deploy a vista image on many different computers, thus making the
     unattended process obsolete.

     In addition, the difference between unattended files of the existing
     OS and the future OS, make the unattended installation
     complicated for future assimilation.

     Because of the above reasons, we support only unattended
     installation of XP, and don’t support unattended installation of
     Vista or future OS (not to say that this is not possible).
   For new application addition (only versions of XP):
   A. Create in the XP folder a new folder which its name is the OS
   option that will appear in the GUI.
   The OS name must contain the phrase "unattended".
   B. In the new folder, create two files: the first is the the
   unattended file, named winnt.sif. The second is a bat file that
   activates the execute file winnt32.exe for unattended installation.
   The bat file must have the same name like the folder it located in,
   and it must have the required flags for unattended installation.




            unattended file            Installation flags
                 path
Figure 12




4.2.      OS for Image deployment
   As described in 3.4.1, the preferred installation method is image
   deployment.
   For new Image addition :
   A. capture an image using imageX.
   B. create a new folder for the Image. If the image is a version of
   an existing OS (like a new image with the latest ServicePack), put
   the folder under the matching OS folder.
   If the Image is a new OS that doesn't exist in the system at all,
   create under the OS folder, a new folder with the new OS name,
   and put the image in the new folder.
   C. copy the new image to the folder (by same name), and create
   the batch file with the same Image name.




  Deployment the VistaImage1                    Image File
         in drive C:
Figure 13




4.3.      Applications.
   Every application in level 3 has a relevant batch file in level 4, and
   the setup file in the same folder.
   The batch file contain the command line for setup has the relevant
   flags for quick installation.

   For new application addition :
A. Create a new folder in the apps folder. Rename the folder by a
name suitable for identification in the application step.
B. copy the application's setup file into the folder and rename it
the same as the folder.
C. Create a batch file with the command line executing the setup
file. Be aware that the command line must include the setup file
path and the quiet installation flags.
For example, lets take a look on the two installations. The folders
and file has a leveled structure, as can be shown in the winrar
installation:




The installation command line is :


                              Setup file path         Quiet installation
                                                             flag
   Figure 14




The winzip installation files are leveled in the similar way:
Figure 15

       The installation command line is:



                                   Setup file path   Other installation   Quiet installation
                                                           flags                 flag



5. End User Guide

   5.1.        Troubleshooting:

             Which FileSystem to use?

       Answer: choose ntfs for current MS OS. You may
       do this by entering 'ntfs' in lowercase letters
       (no need to enter the ''!).

             Which format flags to use?

       Answer: No need to enter any flags for default installations.
       You may use 'quick' for debug purposes.

             Which letters to choose for my partitions?

       Answer: Use 'c' for your OS installation logical drive only.
       Use other letters ('d,e,f...') for different partitions. Do
       not enter 'x:' as your letter, only 'x' (where 'x' refers to
       all letters!).


             Which installation methods to use?

       Currently the system supports unattended installation for XP
       only. Image deployment is supported for Vista OS and Win7.
     These technologies are the most suitable for the OS above
     (see Vista\Win7 HAL for explanation of image deployment...).


          How to configure my BIOS to support USB boot?

     1. Check that booting from USB is supported.
     2. Boot order must be Hard disk first and USB second.
     3. Boot from USB only when initiating the GUI.

          How to change\upgrade my WinPE image?

     See the walkthrough in the ReadMe documentation or check out
     Microsoft TechNet for step by step guides.



6. Project Evolution

     This project is not programmatically difficult. Most of the code is
     simple and the GUI itself is an HTA. The difficulties of this project
     are different than standard project at the Network Software Lab.
     Understanding how to work with the different technologies and
     integrating them together into a complete product is the main
     difficulty. We will explain in detail what we accomplished and the
     phases of development that we completed.


  6.3.     Acquaintance with the Technologies

     Before starting the actual coding of the GUI, we had to familiarize
     ourselves with the many technologies in order to understand and
     experiment with all the different options ahead. This phase is
     important because of two reasons: First, we had to choose which
     technology is best for our needs. Second, we had to gain a deep
     understanding of what we will be doing and what to expect.


     6.1.1. Manual Installation of Operating Systems
     Installing XP and Vista on our technician computer.
   6.1.2. WAIK
   Creating manually unattended files for unattended installation.


   6.1.3. Unattended Installations
   Using unattended files for unattended installation. This was done
   on XP and Vista OS.


   6.1.4. WinPE
   Installing WinPE on our USB HD and learning to work with the
   WinPE command prompt. Later, we also had to customize our
   WinPE installation in order to support all the different
   technologies.


   6.1.5. HTML
   Learning to work with HTML from youtube videos.

   6.1.6. ImageX
   Learning how to capture and deploy images with this tool (and the
   sysprep tool).

   6.1.7. DiskPart
   Learned how to work with this tool in order to properly format the
   HD.


   6.1.8. VBScript
   Studying this language and learning how to work with it alongside
   HTML in order to create dynamic elements, calls utilizing WMI,
   text and file manipulation etc.

   6.1.9. Quiet Application Installation
   Using different tools to accomplish this goal (AutoIt scripts, msi
   files, etc.)



6.2.     Basic Design and Technology decisions:

   After completing our acquaintance with all the different
   technologies, we started planning which features we want to
            include and how we will implement each feature. There are many
            ways to accomplish each task, but we needed to make smart
            decisions to avoid using the wrong technology for each feature. In
            addition, we planned the "look and feel" of the GUI and how we
            should implement each feature.

            Example: Should we use system variables or parse our scripts?
            Should we use AutoIt for quiet installations or not?



                               OS + App             Scripting
                               DataBase             Engines


                                                                  HTML
            WinPE
                                                                application
                                      GUI
   Figure 16

       6.3.            Framework Design and Implementation:

            The objective of this phase of the project was a "preparation stage"
            for the final product. We planned a basic, non-dynamic system in
            which each phase of the GUI was a standalone application. After
            planning the functionality in each stage, we implemented (in
            different HTA files) the different stages of the GUI. In each file,
            we coded the basic functionality of the relevant stage.




        Partition                     OS choice                 Definitions          Applications
        •Calling ext utility          •Create HTML              •Writing variables   •Calling scripting
                                       input fields and          to files             elements (bat
                                       buttons                                        files, WMI, etc.)
                                      •Passing variables
                                       using VBScript



Figure 17
   Example: In the "OS choice" phase we created fixed buttons (not
   created dynamically) and learned how to read the input fields and
   pass the inputs to variables.


6.4.     Comprehensive Implementation:

   During this phase of the project we put together all the elements
   needed in order to implement the final product. We soon learned
   that only a small part of the framework was reusable. For example,
   creating dynamic elements (such as buttons) is very different from
   creating fixed elements. We redesigned the code in one complete
   file (our HTA) and added dynamic areas on our form that we clear
   after each stage of GUI usage (after pressing "next" we clear the
   form and instantiate the next stage). In addition, we separated the
   graphical code from the functionality using CSS. This changed
   dramatically the "look and feel" of the GUI. Global variables
   which contain data that is needed for different stages of the GUI
   were added. We added coordination and synchronization between
   the different stages of the GUI. Also, a progress bar was added. In
   summary, during this phase of the project we merged all the
   different technologies while reusing some of the framework code.

   Here is a screenshot of the complete GUI:
 Progress
 bar for user
 indication

 HTA body




Graphics
implemented
by CSS




                Figure 18




                   6.5.      Debug:

                       This phase of the project was very time consuming. Some of the
                       challenges in implementing a USB Automatic Installation System
                       are that some of the Microsoft technologies are mainly used
                       internally by Microsoft and were not intended for massive public
                       users. This leads to very poor documentation and so we needed to
                       rely on external documentation and a lot of "try and experiment".
                       Another difficulty in this project is that in order to debug our
                       system, we need to wait for a complete format and installation
                       before we can see if our debug was successful.
                       The following were the most notable and time consuming bugs we
                       encountered:


                       6.1.1. Capturing an image

                            Our captured images were not working correctly. Deploy
                            process was not working properly. Solution – Using sysprep
                            before capturing an image.
6.1.2. Drive query

    One of the first procedures the GUI runs is a query to
    determine which drive letter our USB receives. This letter
    changes from computer to computer. We found that the
    Windows Scripting Host (WSH) query was not working on all
    computers. Solution – We implemented this query with
    Windows Management Instrumentation (WMI).


6.1.3. Unattended Installation Process

    The first problem with this process was that it was not clear
    when the process ends! The process seemed to terminate
    prematurely. This was not properly documented at all.
    Solution – After the computer reboots this process continues.
    In order to make the process automatic we added a reboot
    function. The second problem was that after completing the
    installation, a lot of files were unpacked on to our USB HD.
    This included some files being overwritten, including the
    "bootmgr" file in the root of the USB HD. This restrains our
    system to be able to work only once, since it cannot be booted
    again. Solution – Using the proper flags to initiate the
    unattended installation process (see figure X).


6.1.4. Partitioning Tool

    We planned our system to work with an external tool in order
    to partition the HD. This tool was not able to format the HD
    when launched from WinPE. Solution – We designed our own
    partitioning tool using the DiskPart utility (with script) and
    WMI queries to show the current drives and partitions on the
    computer.


6.1.5. Rebooting WinPE

     In order to reboot WinPE we can simply type "exit" at the
    command prompt. But, when calling a batch file with the
    "exit" command this only causes a new window to open and
   the immediately close. Solution – Using "wpeutils" reboot
   function.


6.1.6. Applications

    When installing multiple applications we encountered a
   synchronization problem. Calling multiple batch files in order
   to install multiple applications caused contention.
   Solution – Merge all the needed batch files into one batch file
   (AllInstall.bat).

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:22
posted:12/13/2011
language:English
pages:30