Windows 2000 Unattended Installations and related utilities

First off, please excuse the basic nature of this web page. I really must get round to designing a proper site. I'm knocking this one together because I've noticed from my web logs that a lot of people are going to the root of my web site and getting a 404 Not Found error.

This site contains some documentation I've written relating to the unattended installation of Windows 2000 and applications. I have now refined the technique to the stage where no user interaction at all is required to install Windows 2000.

My document was originally a Word file. To download the Word file, click here.

The document is also available as an HTML conversion. Click here to view it.

I have also written a few utilities which help in the deployment of Windows 2000 (and XP)

Compname.exe is a utility to dynamically generate and set the computer name, optionally pulling in data including the asset tag/serial number from the chassis, motherboard and system, System UUID/GUID, mac address, IP address octets, date, hostname determined by reverse DNS lookup, and a random element.

The program also has uses in prestaging RIS installations, as it can read both the GUID and generate a psuedo-GUID from the MAC address if there is no valid GUID.

The program should run fine on all Windows platforms since Windows 95, including Windows NT. If available (i.e 2000, XP, .net) the program will call SetComputerNameExA from kernel32.dll. If this function is not available, it calls SetComputerNameA from the same DLL. This ensures that, for 2000 and above, the DNS host name and the NetBIOS name both get set properly.

Type "compname.exe /?" to get the syntax. It's pretty easy.

Compname.exe was written using the excellent Mitec SysInfo by Michal Mutl (see and Indy.

Portions of this software are Copyright (c) 1993 - 2002, Chad Z. Hower (Kudzu) and the Indy Pit Crew -

Regvars.exe is a utility for scanning registry files (.reg) and replacing any instances of environment variables with their expanded versions. For example, if you run a reg file containing %programfiles% through the program, it will replace all instances of %programfiles% with, for example, "c:\program files".

Regvars.exe also has an added "virtual" environment variable called %cd%, which evaluates to the first CD-ROM drive in the system

The syntax is "regvars.exe input.reg output.reg". There is no error checking for the command line parameters and it's pretty rough and ready, but does the job.

NB. Regvars.exe current doesn't accept unicode files. The default for a .reg file is unicode. To overcome this, when saving the input file from regedit, be sure to select the "95/NT regedit4" option from the save dialogue box.

Getcd.exe is a utility to get the letter of the first CD-ROM drive in the system. This is useful during the applications phase of a unattended CD-ROM installation, because you don't always know which drive letter the CD-ROM will get. The program simply writes the drive letter (including colon) to the output stream. To insert the drive letter into an environment variable, you can use the following from a batch file:

for /f "Tokens=*" %%a in ('getcd.exe') do set cdrom=%%a

After running this command, you can refer to the CD-ROM drive using the %cdrom% environment variable. If you're not running the command from a batch file, use replace %% with % in the above command.


Although the utilities here are freeware, if you find them useful in a business environment, I would like to request a small donation through my PayPal account.


I genuinely welcome any and all feedback on this document. If anyone has any ideas for useful little utilities (or ways to extend the functionality of the existing ones) then please drop me an e-mail.

My e-mail address is

Useful links

I have found the following sites very useful: (thanks Patrick)