Hardware independent computer imaging
While @TheCompWiz's answer is good, I'd like to add my own version based on my own personal experience.
When you think about automating Windows deployments (anything Vista/2008 and beyond), it helps to separate the actual installation bits from the delivery of the installation bits to the destination machine. A Windows 7 DVD is the standard delivery mechanism for the default set of Windows 7 installation bits. It contains a small WinPE image (boot.wim) that loads on boot which is then responsible for writing the actual OS image (install.wim) down to the hard drive. Windows Deployment Services is also just a delivery mechanism. It can host both the boot.wim and install.wim so that clients can do the installation directly over the network with no physical media necessary.
But delivery of the installation bits is only a small part of the story. Creating your custom "image" (though it's really more of a hybrid image/automated installation) is generally what takes the most time and what most people care about. Others have mentioned using Sysprep to create your custom image. But using it directly and manually editing things like unattend.xml is way more trouble than it's worth. At the end of the day, many of the free and paid solutions for customizing Windows deployments are just wrappers and pre-made scripts that all tie back to Sysprep.
My personal favorite free tool for making custom Windows deployments is the Microsoft Deployment Toolkit (MDT) which recently released version 2012. All it really is is a bunch of pre-made scripts and some GUIs that work together with the Windows Automated Installation Kit (WAIK) to help you build your automated installation. You then have a variety of choices on how to deliver that installation to your clients (WDS boot.wim, bootable CD/DVD, bootable USB key, etc).
Out of the box, it's really not that difficult to build a quick image with some drivers, patches, and applications. Where it shines though is once you dig into making your own custom scripts. The sky is really the limit here. In my previous job, we were using it to deploy a single Windows 7 x64 image to about 1000 machines from multiple hardware vendors including dual-boot MacBooks and iMacs. MDT is really one of my favorite Microsoft products of all time. And did I mention it's free?
The "Microsoft" answer: Windows Deployment Services. When used properly, these images are easily updated with the latest patches, service packs, drivers, and applications. It's very modular by design and can easily adapt to your needs. Unfortunately it takes a team of people to manage. Waaay too much for 1 person to configure/maintain.
Longer answer: It really depends on the scale of your operation. Deploying windows to 10-machines using WDS is a exercise in futility. It is a lot more work than you can imagine. If you're in the habit of provisioning dozens or hundreds of machines... Sure. It works great. The process consists of taking a stock image, throw it at the WDS to customize it to your needs... add additional components... (drivers/patches/servicepacks) and generate the answer-file for your needs... and you're off. It sounds simple... but sadly it's not. Not even slightly. Even knowing how to build a proper WDS setup from scratch... will take you weeks to get configured and setup for your needs. probably be better off building your machines as you have done by creating a "master" machine, then run "sysprep" to make the image generic again, and then blowing that image to all the machines you need. If I'm not mistaken, Symantec Ghost has this option, as well as open-source solutions like Fog which are much easier to maintain.
As a 3rd option, which is sort-of in the middle somewhere... you can make use of tools like nLite (for XP), vLite (for Vista) rt7Lite for (Win7) which allow you to make a "slipstreamed" install disk. Basically, you give it the Windows CD... and it extracts all the bits it needs, then you can customize the installer to make it not ask any dumb questions... and then pre-install drivers/servicepacks/patches into the iso. Once you have the ISO... you can simply burn it to a physical disk & boot off it. It will install all the drivers & such you slip-streamed into the iso. Unfortunately, it won't let you pre-create user accounts & configure network shares & install network printers & such.
As you said you would like to not use WDS, have a look at Sysprep
. You can install the software / updates you want (but NO drivers!), run sysprep.exe
(located in %SYSTEMROOT%\system32\Sysprep\
), with the generalize option and then image your PC with FOG
or any other imaging solution (Ghost, CloneZilla).
Now when you image another machine and when it boots, it will install the required drivers. You can also automate some parts through the "mini-install" with unattend.xml
(see various articles on the web regarding this).
With this method you don't need to use WDS, WindowsPE (even some articles say you have to install it - it's not necessary but it's the way Microsoft wants you to use this).