For a long time, we had no problem installing Windows on new PCs by simply cloning the hard drive of another machine new machine. One black day, however, disaster struck.
We had about 200 Windows 2000 PCs. When new machines arrived we would simply copy on our standard image and then add the applications that were specific to the new machine. Of coures, we had taken the precaution of performing a SYSPREP on the original image – the result of which is that the PC will re-enumerate its hardware and load the appropriate drivers when it re-boots. This include fairly basic drivers for hard drive controllers etc. At the same time, a new network ID and various other properties could be configured.
The first hint of problems was that the system clock on a new batch of PCs kept resetting to “wierd” times every time the machines were rebooted. It took days to narrow the problem down to its cause.
It turned out that our original build had been on a PC that the Microsoft installer identified as a Standard PC. The new batch of PCs were different. They were ACPI Uniprocessor.
Unfortunately, there is a low-level set of drivers that is not touched by SYSPREP. These are known as the HAL (Hardware Abstraction Layer). Unfortunately, a change of HAL from Standard to ACPI is extremely difficult to accomplish (we never actually succeeded – I doubt if anyone has). Apparently, it is possible to switch between Uniprocessor ACPI and Multiprocessor ACPI, but that is about it.
The problem with switching between Standard and ACPI HALs is that, not only are the HAL dll different, but the entire structure of the HKLM/Hardware branch of the registry is different, too. IIRC, there are also various other support dlls that need to be changed.
Some notes on the problem were found here:
Sadly, none of these solutions ever worked for us. We had no option but to rebuild our standard image from the ground up. I guess someone might come up with a better solution. If you do, you have my admiration. I ‘d love to hear from you.