The chapter provides supplemental information about LANDesk OS imaging and profile migration capabilities.
Read this chapter to learn about:
LANDesk OS deployment (OSD) includes a boot disk creation utility that allows you to easily create a disk you can use to boot devices into a managed state in LANDesk network. You can use this boot disk to continue OSD jobs on devices that do not have an operating system or that failed a job for some reason and are no longer bootable. Once you boot a device with this boot disk, you can schedule a job for it.
NOTE: A user must have administrator rights on the core server if they want to create an OSD boot disk (even if they already have the OS Deployment right).
Boot disks are associated with the core server where they were created. If you have multiple core servers, use a boot disk created from the core server you want the device to report to.
NOTE: All data on the diskette will be erased.
You can easily make an Enhanced Software Distribution (ESWD) application package distribution part of your OS deployment script.
REMEXECxx=LDSLEEP.EXE 120
LANDesk includes a command-line utility that allows you to import inventory data into the core database. This can be useful if you're installing new devices and you have information like MAC addresses available. You can use CSVIMPORT.EXE to import this data to the core server so you can target devices ahead of time for OS deployment jobs.
CSVIMPORT.EXE requires a template file describing the field contents and what columns in the core database the data should go in. CSVIMPORT.EXE also requires the .CSV file containing the data matching the template file you specify. CSVIMPORT.EXE creates miniscan files that you can then copy to the LANDesk/ManagementSuite/LDScan directory so they get added to the core database.
Network - NIC Address = %1%
Network - TCPIP - Adapter 0 - Subnet Mask = 255.255.255.0
BIOS - Serial Number = %2%
BIOS - Asset Tag = %3%
Display Name = %4%
Note that you can include custom data in the files. The entries %1, %2, and so on refer to the first column, second column, and so on. The subnet mask in this case will be applied to all entries as 255.255.255.0. The template file can't have any header text other than the actual template information.
0010A4F77BC3, SERIAL11, ASSETTAG-123-1,
MACHINE1
0010A4F77BC4, SERIAL21, ASSETTAG-123-2, MACHINE2
0010A4F77BC5, SERIAL31, ASSETTAG-123-3, MACHINE3
0010A4F77BC6, SERIAL41, ASSETTAG-123-4, MACHINE4
0010A4F77BC7, SERIAL51, ASSETTAG-123-5, MACHINE5
0010A4F77BC8, SERIAL61, ASSETTAG-123-6, MACHINE6
Run CSVIMPORT with these three parameters: <templateFilename> <csvFileName> <outputDirectoryForScanFiles>. If you want the output to be entered in the core database immediately, specify your LANDesk/ManagementSuite/LDScan directory for output.
The Naming convention page of the OS Deployment/Migration Tasks wizard lets you create computer names based on MAC addresses, text you enter, and counters (nnn...). You can also create names based on inventory data for asset tags, serial numbers, and login names by creating a COMPUTERNAME.INI file.
[Rename Operations]
tok0=ASSET TAG
tok1=SERIAL NUMBER
tok2=LOGIN NAME
The values returned by the .INI file substitute for the $MAC token in the wizard's naming convention page.
You can only use the above three inventory values in the file. OS deployment checks the options in the numeric tok<x> order. All three of the above tokens don't have to be in the file. The first tok<x> option found that has an equivalent database entry substitutes for the $MAC token for the device being imaged. For example, in the case above, if there were no asset tag or serial number entries in the database, but there was a login name, the login name would be used for the $MAC token. If none of the options match, the MAC address is used for the $MAC token.
The login name option returns the login name returned by the most recent inventory scan.
The Naming convention page of the OS Deployment/Migration Tasks wizard includes an nnn option that substitutes for a 3-15 digit number, depending on how many n characters you specify. For each computer name template you use in the wizard, OS deployment keeps a running counter of the numbers used. This way, subsequent jobs continue where the last job left off.
Every unique template has its own counter. If you always use the same template, the counter will span jobs. If you change your template after deploying some devices and later decide to go back to the template you originally used, the counter remembers where you left off for that template and continues counting.
The SYSPREP.INF file contains a [RunOnce] section that specifies programs to run after the device boots for the first time. If you add your own programs to that section, you can include database tokens on the program command line if they're useful to the program you're running. OS deployment substitutes the token you specify with corresponding information from the core database.
%Computer - Device Name%
%Computer - Login Name%
%Computer - Manufacturer%
%Computer - Model%
%Computer - Type%
%Computer - BIOS - Asset Tag%
%Computer - BIOS - Service Tag%
%Network - TCPIP - Address%
%System - Manufacturer%
%System - Model%
%System - Serial Number%
%Processor - Processor Count%
%Computer - Workgroup%
%Computer - Domain Name%
You can chain multiple tokens together. For example, to separate two tokens by a colon: %Computer - Workgroup%:%Computer - Device Name% could return MyWorkgroup:MyComputer.
NOTE: You should only use tokens that return a single value.
Uniprocessor and multiprocessor devices require different Windows 2000 and Windows XP images. Depending on your hardware configuration, you may be able to use your uniprocessor image on a multiprocessor device, or vice versa.
Devices that support advanced processor features typically have an Advanced Programmable Interrupt Controller (APIC). Devices that support advanced processor features can also have an Advanced Configuration and Power Interface (ACPI).
The support matrix for sharing an image between uniprocessor and multiprocessor devices is complex. You should refer to Microsoft's UNATTEND.TXT file for more details. Generally, you need to remember the following when sharing uniprocessor and multiprocessor images:
NOTE: Both the source and target devices must have either an ACPI APIC HAL or a non-ACPI APIC HAL. You can't use an ACPI APIC image on a non-ACPI APIC device, or vice versa.
There are three network adapter driver detection phases that occur during an OS deployment job:
NICINFO.EXE detects PnP drivers in Windows 2000/XP. It also detects Windows 9x if IE 4.02 or higher is installed. NICINFO.EXE writes the detected vendor and device ID to DOSNIC.INI on the virtual boot image.
AUTODETE.EXE looks for the DOSNIC.INI left by NICINFO.EXE and reads the vendor and device ID. AUTODETE.EXE then refers to NIC.TXT to find the corresponding driver to load. It copies the driver from c:\Net\Drivers on the virtual boot image to the current RAM drive image (r:\Net by default). AUTODETE.EXE then sets the Microsoft DOS network stack configuration files, SYSTEM.INI and PROTOCOL.INI.
If DOSNIC.INI is empty, AUTODETE.EXE scans all PCI device slots looking for network adapter vendor and device IDs. If the ID found matches an entry in NIC.TXT, AUTODETE.EXE loads that driver.
If DOSNIC.INI is empty and AUTODETE.EXE can't match the discovered ID with NIC.TXT, it loads the driver specified in the OS Deployment/Migration Tasks wizard. If this driver doesn't load, the device will be stuck in DOS, and you'll need to reboot it manually. If no driver was specified in the wizard, AUTODETE.EXE saves an AUTODETE.LOG file to the drive root and the device boots back into the original operating system.
NICINFO.EXE and AUTODETE.EXE don't support 16-bit PCMCIA network adapters. You can load the drivers for these network adapters by selecting the appropriate driver in the OS Deployment/Migration Tasks wizard as described in Phase 3. NICINFO.EXE can detect network adapters that support CardBus.
NICINFO.EXE requires PnP support. Windows NT 4 has no PnP support.
ALTDRIVERS.INI is the driver description file.
[Intel PRO/1000 Adapters]
DRIVER=E1000.DOS
PROTOCOL=E1000
NIC.TXT has information for detecting network adapters. You'll need to edit the NIC.TXT to add custom adapter information. Here's a sample entry:
ven=115D "Xircom"
dev=0003 "Xircom CardBus Ethernet 10/100 Adapter"
drv="CBENDIS.EXE"
prot="XIRCOM"
These are the four possible keys and values:
As you can tell by looking at NIC.TXT, not all drivers have all keys.
To inject driver changes back into the virtual boot image, use copyfile. The syntax is:
COPYFILE <imgfile> <srcfile> <destfile>
COPYFILE c:\Program Files\LANDesk\ManagementSuite\LANDesk\Vboot\LDVBOOT.IMG c:\Drivers\MYNIC.DOS\Net\Drivers\MYNIC.DOS
NOTE: The <destfile> variable can't contain the drive letter designation.
You need to copy the .DOS or .EXE network adapter driver to c:\Net\Drivers and the updated NIC.TXT to c:\Net
If you need to add custom network drivers to the Windows PE environment, follow the steps below.
NOTE: If your license includes the OS deployment and profile migration component, files for the LANDesk imaging tool are automatically installed on your core server. If you want to run the LANDesk imaging tool from a different location, you need to copy the following four files: IMAGEALL.EXE, IMAGE.EXE, RESTALL.BAT, and BACKALL.BAT.
LANDesk's imaging tool for DOS (IMAGE.EXE) is a DOS-based backup and restore utility that creates a snapshot of an entire partition or volume and saves it to a set of files, or saves it directly to most ATAPI CD-R/RW drives. If something should ever happen to that partition or volume, you can simply restore the snapshot image.
IMAGE.EXE relies on the BIOS for processing disk functions. If a computer BIOS limits access to the hard drive for any reason and no drive manager is available to correct the limitation, IMAGE.EXE will also be limited.
IMAGE.EXE is installed as part of LANDesk OS Deployment in the \Program Files\LANDesk\ManagementSuite\osd\imaging directory.
You can use several different environment variables with IMAGE.EXE:
You can use command-line options with IMAGE.EXE. Separate the options by spaces and enter them in the order shown below. Use the /? command-line option to view a list of additional command-line options not explained here.
Format 1: image /Ch# d:\filename.img (no validation)
Format 2: image /Ch#V d:\filename.img (validation)
Format 3: image /Ch#VB d:\filename.img (byte-for-byte validation)
Explanation: Replace the h with the source hard drive number from 0 to 7 and the # with the partition entry ID. For most users, the partition ID is a number from 1-4, or for volumes, a number formatted as 0xPVV where P is the extended partition and VV is the volume number in hexadecimal from 01 to FF.
If you don't know the partition or volume ID, run IMAGE.EXE without any command-line options and select Create Image. The screen that lists the partitions and volumes will display the ID in parentheses as a hexadecimal number. You should prefix that number with a 0x on the command line.
Format 1: image /Ch# /U d:\filename.img (no validation)
Format 2: image /Ch#V /U d:\filename.img (validation)
Format 3: image /Ch#VB /U d:\filename.img (byte-for-byte validation)
Explanation: Same as above.
Format 1: image /Ch# /CDx (ATAPI)
Format 2: image /Ch# /CDSx (ASPI)
Explanation: The h and # information is the same as above. The x after /CD is the CD drive number to use. Omit the x (/CD or /CDS) to get a list of the devices.
Format 1: image /Ch# /U /CDx (ATAPI)
Format 2: image /Ch# /U /CDSx (ASPI)
Explanation: Same as above.
Format 1: image /R d:\filename.img (no validation)
Format 2: image /RV d:\filename.img (validation if needed)
Explanation: Restores the image to the same hard drive and drive location that it was backed up from.
Format 1: image /R /CDx (ATAPI)
Format 2: image /R /CDSx (ASPI)
Explanation: The x after /CD is the CD drive number to use. Omit the x (/CD or /CDS) to get a list of the devices.
Format: d:\filename;s
Explanation: Replace the s after the ";" with 0 for 2 GB, 1 for 698 MB, or 2 for 648 MB.
LANDesk's imaging tool for Windows (IMAGEW.EXE) is a Windows 32-based backup and restore utility that creates a snapshot of an entire partition or volume and saves it to a set of files, or saves it directly to most types of DVD+RW or CD-R/RW drives. If something should ever happen to that partition or volume, you can simply restore the snapshot image.
IMAGEW.EXE is compatible with LANDesk's imaging tool for DOS (IMAGE.EXE).
LANDesk Management Suite now includes an updated version 2 of IMAGEW, which includes support for Windows 7. This version saves image files with a different file extension, and it includes some new functionality. If you have used version 1 of IMAGEW in the past you can continue to use it as documented in the following section.
Version 2 of IMAGEW is installed as part of LANDesk OS Deployment in the ..\ManagementSuite\osd\imagew 2 directory.
For information about using IMAGEW 2, visit the LANDesk Support Community Web site at community.landesk.com.
The following information applies to IMAGEW version 1.
For use with Windows 9x/Me, IMAGEW.EXE requires that the system support Int 13h extensions. If your computer BIOS limits access to the hard drive for any reason and no drive manager is available to correct the limitation, IMAGEW.EXE will also be limited on those OSes.
IMAGEW.EXE is installed as part of LANDesk OS Deployment in the \Program Files\LANDesk\ManagementSuite\osd\imaging directory.
You can use various environment variables and command-line options to ensure that the images you create meet your requirements.
Environment variables for IMAGEW.EXE must be used with command-line options. The following environment variables are available:
You can use command-line options with IMAGEW.EXE. Separate the options by spaces and enter them in the order shown below. Use the /? command-line option to view a list of command-line options not explained here.
Format 1: imagew /Ch# d:\filename.img (no validation)
Format 2: imagew /Ch#V d:\filename.img (validation)
Format 3: imagew /Ch#VB d:\filename.img (byte-for-byte validation)
Explanation: Replace the h with the source hard drive number from 0 to 7 and the # with the partition entry ID. For most users, the partition ID is a number from 1-4, or for volumes, a number formatted as 0xPVV where P is the extended partition and VV is the volume number in hexadecimal from 01 to FF.
If you don't know the partition or volume ID, run IMAGEW.EXE without command-line options and select Create Image. The screen that lists the partitions and volumes will also display the ID in parentheses as a hexadecimal number. You should prefix that number with a 0x on the command line.
Format 1: imagew /Ch# /U d:\filename.img (no validation)
Format 2: imagew /Ch#V /U d:\filename.img (validation)
Format 3: imagew /Ch#VB /U d:\filename.img (byte-for-byte validation)
Explanation: Same as above.
Format 1: imagew /Ch# /CDx
Explanation: The h and # information is the same as above. The x after /CD is the CD drive number to use. Omit the x to get a list of the devices.
Format 1: imagew /Ch# /U /CDx
Explanation: Same as above.
Format 1: imagew /R d:\filename.img (no validation)
Format 2: imagew /RV d:\filename.img (validation if needed)
Explanation: Restores the image to the same hard drive and drive location that it was backed up from.
Format 1: imagew /R /CDx
Explanation: The x after /CD is the CD drive number to use. Omit the x to get a list of the devices.
Format: d:\filename;s
Explanation: Replace the s after the ";" with 0 for 2 GB, 1 for 698 MB, or 2 for 648 MB.
Windows PE is a mini-Windows system that provides limited services based on the Windows XP Professional and the Windows Server 2003 kernels. Windows PE is a hardware-independent Windows environment that contains the following:
Windows PE uses TCP/IP to provide network access and supports the same set of networking and mass- storage device drivers that Windows XP supports. Some limitations worth noting are that connectivity is limited to outgoing connections only (resource sharing is disabled), and to prevent client-usage of the OS, a hard-coded reboot will occur after 24 hours of use.
LANDesk has customized the Windows PE operating system to only include necessary libraries, utilities, and drivers. Additionally, the LANDesk agent files have been copied to the image to facilitate LANDesk functionality. Also, the command file initially loaded by the PE operating system has been modified to include the LANDesk staging commands. Starting with Service Pack 2 for LANDesk 8.7, WMI support was added to the image.
This section will provide a list of the files that have been either added or modified in the PE image, an overview of the boot process and an explanation of each line in the startup command file.
In addition to drivers, the LANDesk Windows PE image includes the following modified or added files.
File | Purpose |
---|---|
winbom.ini | Turns off the Windows PE firewall |
\i386\txtsetup.sif | LANDesk signature file |
\i386\system32\winpeshl.ini | Defines the shell location |
\i386\system32\peshell.exe | The actual shell used |
\i386\system32\setupreg.hiv | Includes the LANDesk path |
\i386\system32\startnet.cmd |
Command file run at startup |
\i386\system32\all.reg | LANDesk registry modifications |
\i386\system32\winpe.bmp | LANDesk background wallpaper |
\CBA8 | LANDesk agent |
\LDCLIENT | LANDesk agent |
The WinPE boot process starts like this:
The LANDesk-modified WinPE image by default includes a custom STARTNET.CMD file. In version 8.7sp2, it looks like this:
@echo off
set path=%path%;x:\cba8;x:\ldclient
\ldclient\GetBootOptions set /a err = %errorlevel%
if %err% gtr 0 goto nofix
ldclient\Diskinfo fix
:nofix
factory winpe
reg import all.reg
\ldclient\wait4ip /t 180
if %errorlevel% gtr 0 goto fail
CD \CBA8
RESIDENTAGENT.EXE /register
RESIDENTAGENT.EXE /start
CD \ldclient
winpepds /install
winpepds /start
If %err% gtr 0 goto pxe
miniscan /nodeviceid /usemacasname
Goto end
:pxe
if %err% lss 2 goto pxemenu
:pxeboot
miniscan /x /nodeviceid /usemacasname
goto end
:pxemenu
miniscan /nodeviceid /usemacasname
Replcore PxeMenuStart.cmd
call PxeMenuStart.cmd
goto end
:fail
@echo "Failed to get localhost IP address or resolve core server name. Please check your network and try again."
@pause
:end
The following section describes each line in STARTNET.CMD.
Hides the output of this CMD file. REM this command out when troubleshooting the STARTNET.CMD.
Sets the path to include the added LANDesk agent files.
This executable sets the errorlevel to 0, 1, or 2. The values are 0 if the machine was virtual booted, 1 if the machine was PXE booted and the PXE menu was chosen, and 2 if the machine was PXE booted and managed boot was chosen.
Sets the ERR variable to the value derived by GetBootOptions.
This line has the script skip to the next line if the machine was PXE-booted.
This line is only processed if not PXE booting. Diskinfo.exe used with the fix switch resets the MBR to boot back into the original active partition. Vbooting had previously set this to boot to the WinPE RAM drive.
The FACTORY.EXE command is used to load drivers and when called with the –winpe switch it will generate a unique name for the PE session (usually minint-<random suffix>) and then process the WINBOM.INI, which is where you can configure and add to the PE behavior. For example, since by default FACTORY.EXE is scanning all of the available drivers to find the one that matches the discovered hardware, you could limit the number of drivers scanned (thereby increasing bootup speed) by modifying the NetCards section of the WINBOM.INI file.
Imports the LANDesk environment settings into the WinPE registry. Specifically, the core server's name and the port used for inventory are defined in the ALL.REG file. Here is an example ALL.REG:
Windows registry Editor version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Intel\LANDesk\LDWM]
“CoreServer”=”<core_name>”
“InventoryServerPort”=”5007”
The wait4ip executable ensures we have an IP address before gathering inventory for this machine. The /t 180 defines a timeout limit of 3 minutes. A /s can be added to silence the output of this program. Additional information is available by executing with a /?.
Skips the rest of the commands in this file if an IP address can't be obtained.
Changes the directory from X:\i386\system32 to X:\CBA8.
RESIDENTAGENT.EXE is the service that listens for and accepts connections for remote commands, and then starts the application needed to handle the request (which is how the LANDesk imaging operations are carried out). The /register switch will install and register the RESIDENTAGENT.EXE as a service. This is logged in the CBA8 directory in RESIDENTAGENT.LOG.
The /start switch will start the RESIDENTAGENT.EXE service, which proceeds to load necessary libraries. This too is logged in the RESIDENTAGENT.LOG.
Changes the directory from X:\CBA8 to X:\LDClient.
WINPEPDS is the module pinged by the core server to discover this machine, verifying this is the correct managed node. The /install switch will install the service.
The /start switch starts the WINPEPDS service.
This line means that PXE booted machines will continue the script at the PXE section further below.
This line is only executed by virtual booted machines, and is their last command. Miniscan is the utility used to grab minimal information about the system and store it in the LDMS inventory database. Running miniscan without switches will include a device name and ID in its scan file, and thereby will show up in the console as “minint-<random suffix>”. However, using the /nodeviceid /usemacasname switches removes this information from the scan file and limits the data sent to 3 things: MAC Address, IP Address, and Processor Count. In the console, these devices show up named after their MAC address.
Tells PXE-booted machines that are supposed to get the menu to skip to the PXEmenu section.
This line is executed by those PXE booted machines that are a managed boot. If the /x is used when calling miniscan, an extra attribute is sent in the Network portion of the scan file, Pxeboot=Yes.
This line is only executed by PXE-booted machines that are to display a menu. Miniscan is the utility used to grab minimal information about the system and store it in the LDMS Inventory database. Running miniscan without switches will include a device name and ID in its scan file, and thereby will show up in the console as “minint-<random suffix>”. However, using the /nodeviceid /usemacasname switches removes this information from the scan file and limits the data sent to three things: MAC Address, IP Address, and Processor Count. In the console, these devices show up named after their MAC address.
REPLCORE.EXE is used to replace the %CoreServer% variable in the file it is pointed to with the value found in the registry String Value HKLM\Software\Intel\LANDesk\LDWM\CoreServer (this was populated with the ALL.REG earlier in the process). In this case, the PxeMenuStart.cmd is about to be called and it uses sdclient to contact the core server and therefore must have the correct core name in its command line.
If the menu option is chosen by the PXE booted machine, then the PXEMENUSTART.CMD will be executed. Two of the significant lines are:
sdclient /f /o /p=”http://%CoreServer%/landesk/files/dosmenu.cfg”
RunBatch 500 X:\LDClient PxeMenu dosmenu.cfg
First, sdclient is used to retrieve the DOSMENU.CFG from the core server. Then RunBatch (a simple utility that calls a process after a defined delay) is used to launch PXEMENU.EXE fed with the parameter of DOSMENU.CFG.
If an IP address could not be obtained, this error message appears, indicating that the NIC or NIC drivers should be investigated.