Novell Home

AppNote: Sysprep, Add-on Images, Application Objects, Oh My!

Novell Cool Solutions: AppNote
By Matthew Warden Whited

Digg This - Slashdot This

Posted: 4 Mar 2005
 

Create Syspreped Image

Using Microsoft Sysprep allows you to create an image that will port to another system and will install the proper drivers for that system while maintaining a common configuration for all of your workstations.

  1. Create and configure your base Image with applications that are common to your entire business
  2. Configure "Default User"
    1. Run and configure each application as you would like the settings to be for your users
    2. Copy your profile and registry to the "Default User" profile
    3. Grant read & file scan to "Everyone" for "Default User"
  3. Using "Device Manager" change the "Computer" kernel to most common type for all of your systems (check with Microsoft for more details, but I recommend "ACPI_PC" or "Standard PC"
  4. Install "Sysprep" from Microsoft (found in deploy.cab on with Windows XP CD-ROM) to c:\sysprep
  5. Create a text file named "C:\sysprep\sysprep.inf". It should contain:

  6. SetupMgrTag
    [Unattended]
        OemSkipEula=Yes
        DriverSigningPolicy=ignore
        TargetPath=\WINDOWS
        OemPnPDriversPath="Drivers\WinXP\Video;Drivers\WinXP\Audio
        ;Drivers\WinXP\Network;Drivers\WinXP\USB;Drivers\WinXP\SYS
        TEM;Drivers\WinXP\wnic;Drivers\WinXP\modem;Drivers\WinXP\m
        ouse;Drivers\WinXP\monitor;Drivers\WinXP\keyboard;Drivers\
        WinXP\other;Drivers\WinXP\other2;Drivers\WinXP\other3;Driv
        ers\WinXP\other4;Drivers\WinXP\other5"
    
    [GuiUnattended]
        AdminPassword=*
        OEMSkipRegional=1
        OEMDuplicatorstring="PUT YOUR ORGANIZATION NAME HERE>"
        TimeZone=35
        OemSkipWelcome=1
        EncryptedAdminPassword=NO
    
    [UserData]
        ProductID="<PUT YOUR PRODUCT KEY HERE>"
        FullName="<PUT YOUR NAME HERE>"
        OrgName="<PUT YOUR ORGANIZATION NAME HERE>"
        ComputerName=CHANGEME
    
    [TapiLocation]
        CountryCode=1
        AreaCode=614
    
    [Sysprep]
        
    [Branding]
        BrandIEUsingUnattended=Yes
    
    [Proxy]
        Proxy_Enable=0
        Use_Same_Proxy=0
    
    [Identification]
        JoinWorkgroup=WORKGROUP
    
    [Networking]
        InstallDefaultComponents=Yes
    
    [Sysprep] 
    BuildMassStorageSection=yes 
    
    [SysprepMassStorage] 
  7. Replace "<PUT YOUR PRODUCT KEY HERE>" with your MS Windows XP product key
  8. Replace <"PUT YOUR NAME HERE>" with your Full Name
  9. Replace "<PUT YOUR ORGANIZATION NAME HERE>" with your Business Name
  10. Run "c:\sysprep\sysprep.exe -BMSD" to rebuild the mass storage driver list (save this version of sysprep.inf for future use)
  11. Run "c:\sysprep\sysprep.exe"
    1. Check "NoSIDGen", "PnP", "MiniSetup", "Pre-activated"
    2. Set "Shutdown" to "Shutdown"
    3. Click "Reseal"
  12. After the system shutsdown boot into ZENworks preboot services (I like PXE boot the best)
  13. Create a system image
    1. img mp $PROXYADDR //$PROXYADDR/<VOLUME NAME>/<IMAGE NAME>
      1. Change <VOLUME NAME> and <IMAGE NAME> to meet your needs

Create Add-on Image for markers and driver sets

Marker sets are used to identify to "Application Objects" what add-on images have been deployed to a workstation by testing for the existence of "marker" files that you add to the add-on image. A marker file should just be an empty file that can be placed in a folder with a known common name to uniquely identify that add-on image.

  1. Create a new Add-on image using "ZENworks Image Explorer" (sys:\public\zenworks\imaging\imgexp.exe)
  2. Use the following structure for your driver and marker sets
  3. Partition 1
    	Drivers
    		APPS
    		BRAND
    		BUILDING
    		MODEL
    		ROOM
    		WinXP
    			audio
    			keyboard
    			modem
    			monitor
    			mouse
    			network
    			other
    			other2
    			other3
    			other4
    			other5
    			system
    			usb
    			video
    			wnic
  4. Save this as a model to create other add-on images from
  5. To create a driver set import the driver files into the various folders in the add-on image
  6. Add marker files for "BRAND" and "MODEL" to identify the system type
  7. You may want to create marker sets for Building and Rooms in your organization. Create these as add-on images by placing markers in the "BUILDING" or "ROOM" directories
  8. Save Driver sets with the prefix "drv_" and Building / Room sets with the prefix "bldg_"

Create Application Objects and Add-On image using ZENworks Snapshot

Create non-healing application objects with all files being distributed as an add-on image. This is not a good idea for small, on-demand applications, but works very well for large applications such as Autodesk Design Academy or Microsoft Visual Studio. Don't worry about the non-healing applications because you can always just reimage the workstation.

  1. Use "ZENworks Snapshot" to create a snapshot difference of installing an application
  2. After adding this as an "Application Object" to your eDirectory / NDS tree create an add-on image using Image Explorer that places the files in the correct location on the hard drive
  3. The Application Object to Add-On image in ConsoleOne only creates a NALCache folder on the hard drive and still takes a lot of time to deploy to the workstation once imaged. I recreate the full placement of files on the hard drive including add the %USER PROFILE% items to the "Default User" profile. This allows for much faster and smoother deployment of large applications to and workstation with your syspreped image.
  4. Add a Marker file in "Partition 1\Drivers\APPS" to uniquely identify this add-on image
  5. Save the file name with the prefix "app_"
  6. Remove the "Application Files" from the "Application Object"
  7. Add a requirement for the existence of the marker file in step 3
  8. Associate this Objects as force run to all workstations (If you have a very large deployment you may want to limit this to workstation groups)

Create a scripted Workstation Image object

With the Workstation Image objects you can create a scripted image. This script can us almost any A shell command as well as interfaced with some of the different ZIS utilities from Novell for a very powerful and easy to use distribution of images.

ZISNAME=`zisview Name`
IMGSVR=10.130.135.6


if test ! $ZISNAME; then 
   echo -e "No image-safe data found." 
   echo -e "Assumed to be a new workstation.\n" 

   while test ! $WSNAME; do 
      echo -n "Enter the workstation name: " 
      read WSNAME; 
   done; 

   if test $WSNAME; then
      zisedit -c
      zisedit Name=$WSNAME;
   fi
else
   WSNAME=
   echo ""
   echo "Computer Name: $ZISNAME"
   echo ""

   echo -n "Change Name (Enter Name to change leave blank to skip): " 
   read WSNAME
   
   if test $WSNAME; then
      echo "Name Changed to $WSNAME"
      zisedit -c
      zisedit Name=$WSNAME;
   fi   
fi 

echo ""
echo "Building List"
echo "----------------------"
echo "aml      Amalgamated Place"
echo "ecc      Eastland Career Center"
echo "fcc      Fairfield CareerCenter"
echo "<anything else>   Skip Building Set"
echo ""
echo -n "Enter Building: "
read WSBLDG;

if [ "$WSBLDG" = "ecc" ]; then
   IMGSVR=10.130.135.6

   echo ""
   echo "Room List"
   echo "----------------------"
   echo "2002      MO"
   echo "2003      AS"
   echo "2004      IM"
   echo "2005      IS"
   echo "2006      BF"
   echo "1113      DD"
   echo "<anything else>   Base"
   echo ""
   echo -n "Enter Room: "
   read WSROOM;

elif [ "$WSBLDG" = "fcc" ]; then
   IMGSVR=10.130.139.6

   echo ""
   echo "Room List"
   echo "----------------------"
   echo "1360      LO"
#   echo "1630      CS"
   echo "<anything else>   Base"
   echo ""
   echo -n "Enter Room: "
   read WSROOM;

elif [ "$WSBLDG" = "aml" ]; then
   IMGSVR=10.130.131.1
   echo "No Room List"

fi

echo ""
echo "Computer Model"
echo "----------------------"
echo "gx260      Dell Optiplex GX260"
echo "gx270      Dell Optiplex GX270"
echo "gx280      Dell Optiplex GX280"
echo "gwsolo      Gateway Solo 1450"
echo "thpdg40      IBM Thinkpad G40"
echo "<anything else>   Skip Driver Set"
echo ""
echo -n "Enter Model: "
read WSMODL;


echo "Loading Base Image"
img rp $IMGSVR //$IMGSVR/pxe/sysprepd

if [ "$WSMODL" != "" ]; then
   echo "Loading Driver Set"
   img rp $IMGSVR //$IMGSVR/pxe/drv_$WSMODL
   if [ "$?" = "59" ]; then
      echo "Warning Bad Driver Set"
   fi
fi

if [ "$WSBLDG" != "" ]; then
   echo "Loading Building Set"
   img rp $IMGSVR //$IMGSVR/pxe/bldg_$WSBLDG
   if [ "$?" = "59" ]; then
      echo "Warning Building Set"
   fi
fi

if [ "$WSROOM" != "" ]; then
   echo "Loading Room Set"

   if [ "$WSBLDG" = "ecc" ]; then
      echo "Eastland CC Room $WSROOM"
      
      if [ "$WSROOM" = "2002" ]; then
         img rp $IMGSVR //$IMGSVR/pxe/app_Thomson_Course_Technology_SAM_2003.zmg
   
      elif [ "$WSROOM" = "2003" ]; then
         img rp $IMGSVR //$IMGSVR/pxe/app_Thomson_Course_Technology_SAM_2003.zmg
         img rp $IMGSVR //$IMGSVR/pxe/app_Intuit_Quickbooks_Pro_2003.zmg
   
      elif [ "$WSROOM" = "2004" ]; then
         img rp $IMGSVR //$IMGSVR/pxe/app_Thomson_Course_Technology_SAM_2003.zmg
         img rp $IMGSVR //$IMGSVR/pxe/app_Adobe_Photoshop_7.0.zmg
         img rp $IMGSVR //$IMGSVR/pxe/app_Macromedia_Studio_MX_2004.zmg
         echo "Add Adobe Premiere Set Here"
   
      elif [ "$WSROOM" = "2005" ]; then
         img rp $IMGSVR //$IMGSVR/pxe/app_Thomson_Course_Technology_SAM_2003.zmg
         img rp $IMGSVR //$IMGSVR/pxe/app_Microsoft_Visual_Studio_6.zmg
   
      elif [ "$WSROOM" = "2006" ]; then
         img rp $IMGSVR //$IMGSVR/pxe/app_Thomson_Course_Technology_SAM_2003.zmg
         img rp $IMGSVR //$IMGSVR/pxe/app_Intuit_Quickbooks_Pro_2003.zmg
   
      elif [ "$WSROOM" = "1113" ]; then
         img rp $IMGSVR //$IMGSVR/pxe/app_Autodesk_AutoCAD_2002.zmg
         echo "Add Autodesk Design Academy set here"
   
      else
         echo "No Room based Images"
      fi
         
   
   elif [ "$WSBLDG" = "fcc" ]; then
      echo "Fairfield CC Room $WSROOM"
   
      if [ "$WSROOM" = "1360" ]; then
         img rp $IMGSVR //$IMGSVR/pxe/app_Thomson_Course_Technology_SAM_2003.zmg

      else
         echo "No Room based Images"
      fi"
   
   elif [ "$WSBLDG" = "aml" ]; then
      echo "Amlagamated Room $WSROOM"
         echo "No Room based Images"
   
   fi
fi

reboot


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell