Mirek Kordos
AI RESEARCH, SOFTWARE DEVELOPMENT and more




.NET - How To



Software Engineering & Internet Applications



Business Intelligence with MS SQL Server



What is new in Visual Studio 2010 and NET 4.0

VS 2010 official home page



What is new in Microsoft 2008 series

Visual Studio 2008

Windows Sever 2008

SQL Server 2008



Windows Setup

In this article we discuss how to perform an unattended installation of Windows 2000/XP/Vista with all the updates and computer manufacturer's drivers, regardless if the computer has a floppy, unsupported SATA drives and whatever else.

nLite and vLite

In general you must use only one tools: nLite or vLite or Setup Manager. nLite supports Windows 2000/XP/2003, while vLite supports Windows Vista. nLite/VLite prepares the CD/DVD that you can use for installation. Both are freeware and both provide the following functionalities:

nLite/VLite is a GUI wizard; you really don't have to know anything to use it. Just follow the wizard till you burn the CD and you will be happy.

Setup Manager

nLite/vLite have almost the same functionalities as Setup Manager while being more user-friendly, however if you prefer to use Setup Manager, here is how to do it:

setupmgr.exe is a program that lets you answer all of the installation questions ahead of time, and save them to a disk. You will find it on the Windows Install CD in Support\Tools\deploy.cab Expand the files:
md MyInstallationFolder
expand -f:* deploy.cab c:\MyInstallationFolder

There is an "unattend.doc" file among files extracted form deploy.cab. It describes all the additional options you can use in the winnt.sif file.

Run setupmgr.exe. Choose: Create a new answer file then Windows (version) Unattended Answer file then Fully Unattended Installation

Now follow the wizard. Answer politely all the questions as you want them to be answered. Then finish the wizard and save the file. The next step is to rename the answer file to "winnt.sif". If you haven't been asked to provide the CD-Key then put it manually into the answer file (Under [UserData] add the following entry: ProductID="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx").

Now copy the winnt.sif file to a floppy, if you have one. But you probably don't have, so you must put your winnt.sif file in the i386 folder on your CD. The winnt.sif can be edited (before burning the CD of course) to prepare individual CDs for each computer. That maybe more convenient than changing serial numbers, computer names, IP addresses, etc. after installations. (To change the serial number after installation use: %systemroot%\system32\oobe\msoobe.exe /a in XP and slmgr.vbs -ipk in Vista) Then burn the bootable CD and you are ready to install Windows.

SID Problem

The SID (Security Identifier) is a number that must be unique on each computer in the network, otherwise they may be seen by some authentication mechanisms as the same machine. It is normally different after unattended installation, however if you install Windows on one computer only and use disk mirroring to populate the image onto other computers, the SID will be the same and you must change it after installation. If you use Norton Ghost remember to check the SID Change option or use Ghost Walker. (Ghost Walker is a DOS utility included in Norton Ghost that allows you to change the SID and computer name at each client computer after cloning, that is, before restarting the computer into Windows.) Another utility you can use is Windows's SysPrep that can both change the SID and adjust the drivers if the hardware of the source and destination computer is not identical.

Other Options

There are a great many of other ways for remote unattended installation of Windows, provided both my Microsoft and computer vendors (e.g. HP). You should be aware of these options in case you need to install a computer remotely. (By the way I'm happy that I no loger work as an HP and Microsoft Systems Engineer.) Miroslaw Kordos



Which Language is the Fastest ?

I compared the speed of C# 2008, Delphi 2007 and Java 6 on the following code:

double a = 0.12, b = 0.13, c = 0.14; int i, j;

for (i = 0; i<= 55000000; i++)
{

a += 0.0001;
c += 0.00012;
b += Math.Log(Math.Atan(Math.Sqrt(a / c)));

}

The execution time on 32-bit Windows XP with Intel M750 was:

Then I compared the speed of C# 2008, Delphi 2007 and Java 6 on the following code:

double a = 0.12, b = 0.13, c = 0.14; int i, j;

for (i = 0; i<= 55000000; i++)
{

for (j = 0; j<= 5; j++)
{
if (a>b || a>c)
a += 0.012
else
a += 0.044;
}

b += 0.0000011 *c*b/a;

}

The execution time on 32-bit Windows XP with Intel M750 was:

Conclusions?

Graphics g = panel1.CreateGraphics();
Bitmap bm = new Bitmap(panel1.BackgroundImage);
Rectangle SourceRect = new Rectangle(100, 100, 70, 170);
Rectangle DestRect = new Rectangle(20, 20, 140, 340);
g.DrawImage(bm, DestRect, SourceRect, GraphicsUnit.Pixel);



Creative Commons License. You are free to copy, share and adapt all articles and software from my web page for noncommercial purposes, provided that you attribute the work to me and place a link to my home page. What you build upon my works may be distributed only under the same or similar license and you may not distort the meaning of my original texts.