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.
- Create and configure your base Image with applications that are common to your entire business
- Configure "Default User"
- Run and configure each application as you would like the settings to be for your users
- Copy your profile and registry to the "Default User" profile
- Grant read & file scan to "Everyone" for "Default User"
- 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"
- Install "Sysprep" from Microsoft (found in deploy.cab on with Windows XP CD-ROM) to c:\sysprep
- Create a text file named "C:\sysprep\sysprep.inf". It should contain:
- Replace "<PUT YOUR PRODUCT KEY HERE>" with your MS Windows XP product key
- Replace <"PUT YOUR NAME HERE>" with your Full Name
- Replace "<PUT YOUR ORGANIZATION NAME HERE>" with your Business Name
- Run "c:\sysprep\sysprep.exe -BMSD" to rebuild the mass storage driver list (save this version of sysprep.inf for future use)
- Run "c:\sysprep\sysprep.exe"
- Check "NoSIDGen", "PnP", "MiniSetup", "Pre-activated"
- Set "Shutdown" to "Shutdown"
- Click "Reseal"
- After the system shutsdown boot into ZENworks preboot services (I like PXE boot the best)
- Create a system image
- Change <VOLUME NAME> and <IMAGE NAME> to meet your needs
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]
- img mp $PROXYADDR //$PROXYADDR/<VOLUME NAME>/<IMAGE NAME>
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.
- Create a new Add-on image using "ZENworks Image Explorer" (sys:\public\zenworks\imaging\imgexp.exe)
- Use the following structure for your driver and marker sets
- Save this as a model to create other add-on images from
- To create a driver set import the driver files into the various folders in the add-on image
- Add marker files for "BRAND" and "MODEL" to identify the system type
- 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
- Save Driver sets with the prefix "drv_" and Building / Room sets with the prefix "bldg_"
Partition 1 Drivers APPS BRAND BUILDING MODEL ROOM WinXP audio keyboard modem monitor mouse network other other2 other3 other4 other5 system usb video wnic
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.
- Use "ZENworks Snapshot" to create a snapshot difference of installing an application
- 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
- Add a Marker file in "Partition 1\Drivers\APPS" to uniquely identify this add-on image
- Save the file name with the prefix "app_"
- Remove the "Application Files" from the "Application Object"
- Add a requirement for the existence of the marker file in step 3
- 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)
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.
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

