Thanks for the information, LiquidSage. The quotes I use cam from the installers.html file documentation from unattended, which you can use to pre-install Xp or 2000.
QUOTE
You might try following the directions in KB article 195828. If you do, you will be disappointed, because smsinst.exe forks and exits immediately, rendering it useless for scripting. The KB article's instructions for using the acost.exe tool to configure which components to install is still accurate, however.
Luckily, by running "strings" on smsinst.exe, we can learn that all it does is run regedit /s key.dat and then fire up acmboot.exe. The key.dat file is just a simple registry patch to trick acmboot.exe into thinking that the GUI portion of Setup has already run. You must provide the /k switch to acmboot.exe to specify your license key (sans hyphens).
Having installed Visual Studio, you probably want to install the latest service pack (SP5 as of this writing). To perform an unattended installation of SP5, run setupsp5.exe /qn1. You may also provide the /g switch to specify a log file.
But oh, if only it were that simple. If you are installing on Windows 2000, you will find that the /qn1 switch does not actually work, because the installer insists on popping up a useless warning that your version of MDAC is out-of-date. The solution to this? Update MDAC to the latest version before trying to install the service pack.
So, the full unattended procedure for installing Visual C++ 6.0 is:
Run regedit /s key.dat
Run start /wait acmsetup.exe /k license-key
Reboot
Update MDAC to the latest version
Run start /wait setupsp5.exe /qn1
So I guess that means that you can use acost.exe to modify the .stf file which cofigures the default options, then run the "start /wait acmsetup.exe /k license-key". The only problem is that you have to copy the cd to your hard drive on the server first, since the file is readonly. The problem is you can't use the smsinst since it runs then exists right away.
And for MSDN you also can pre-install the files, but it agains means copying all the cds to the hard drive first. Again, I think you can modify the msdn stf file to configure the defualt options, but since I haven't tried this yet, I'm not sure.
QUOTE
NOTE: The following applies to the April 2002 and October 2002 editions of the MSDN Library. I make no promises about other editions, although I would be happy to hear about your experiences with them.
The good news is that the MSDN Library comes with an MSI package. The bad news is that when you try to install it with msiexec, a little dialog box appears telling you to run the provided setup.exe instead.
Naturally, this setup.exe responds to /? with "Incorrect command line parameters", so you have to guess what it wants. It turns out that it will take any arguments you give and pass them on to msiexec. So we can just run setup.exe /qb and be done with it, right? Wrong. Before running msiexec, setup.exe forks itself into the background, so start /wait returns immediately instead of waiting.
But we do not give up so easily.
If you run setup.exe with the /l*v logfile option, you can learn quite a bit about what it is doing. In particular, you can discover that setup.exe simply passes a SETUP_EXE=yes property to the underlying msiexec process.
In other words, all you have to do is run msiexec /qb /i msdn.msi SETUP_EXE=yes, and the installation proceeds without a hitch.
You may be wondering: If setting one useless property is all setup.exe does, why does Microsoft want you to use it? The answer is that the MSDN Library requires IE6, and setup.exe will install it for you if necessary. So, you should make sure you have IE6 installed before you attempt this procedure, because I have no idea what will happen otherwise.
Incidentally, this will perform a "Default" installation of MSDN Library, which means that most of the files will not be installed locally but rather loaded from the source directory as required. So choose the path to that msdn.msi package carefully, because that is the path MSDN will search whenever it needs something. (Hint: If you would rather perform a "Full" installation so that all files are copied to the local machine, add INSTALLATION_TYPE=Full to the command line.)