Friday, January 22, 2010

Compressing files

To save space in sysprep you can compress all those driver files using

compress -z -r 945g\*.*

It renames all files in the 945g folder replacing the last letter in the filename with an _.  Alternatively, use expand to expand them.  Oh and don't compress the inf file...

Drivers for Intel graphics adapters

We support everything from GX270 to 960 around here.  And the many Intel graphics adapters that go with it.  In a nutshell:

winxp_14324.exe - 945G drivers work with GX520, GX620

The desktop supported chipsets according to the readme:

* Intel(R) 945G Express Chipset
* Intel(R) 945GZ Express Chipset
* Intel(R) 946GZ Express Chipset
* Intel(R) G31 Express Chipset
* Intel(R) G33 Express Chipset
* Intel(R) G35 Express Chipset
* Intel(R) G965 Express Chipset
* Intel(R) Q33 Express Chipset
* Intel(R) Q35 Express Chipset
* Intel(R) Q963 Express Chipset
* Intel(R) Q965 Express Chipset

I think there is a mistake as Q35 is supported by win2k_xp14371.exe which supports Q33 and Q43/Q45 as well.  These are used on Optiplex 755 (Q35) and 960 respectively.

The desktop supported chipsets according to the readme:
* Intel(R) G31 Express Chipset
* Intel(R) G33 Express Chipset
* Intel(R) G35 Express Chipset
* Intel(R) G41 Express Chipset
* Intel(R) G43 Express Chipset
* Intel(R) G45 Express Chipset
* Intel(R) Q33 Express Chipset
* Intel(R) Q35 Express Chipset
* Intel(R) Q43 Express Chipset
* Intel(R) Q45 Express Chipset

Instead of DD, use Universal Extractor to extract the goodies from the exe files.
http://www.legroom.net/software/uniextract

Wednesday, January 20, 2010

Beware of oem*.inf files

If you are having problems with add new hardware wizard or sysprepping trying to install the wrong driver, maybe you should delete your oem*.inf and oem*.pnf files.  The *.pnfs point to the locations of files for infs that were installed at some point.  An outdated inf file could cause the wrong driver to be searched for, or even installed.

So... another thing.  If you don't check what the contents are you might regret it.  I just blew away my network driver.  Only really safe to delete the 0 byte files.

Which drivers does sysprep need?

Ok. So I thought I solved the classic problem of figuring out which drivers sysprep needs.  Double Driver. Problem gone. Nada.  Here are the hiccups:

1) Even though DD finds the drivers, it may not use the preferred inf from the orginal install.  I'm installing a Radeon 3450.  DD picks up oem35.inf while the proper inf is CX_73177.inf. This might be ok, we shall see...

2) Even though all the files are there, the install still cannot find certain files and it is looking for them in a certain folder which does not exist.

The solution. There is usually a subfolder below the level of the inf file where the drivers are stored, for example, B_72960.  There is a parameter in the inf called

[SourceDisksNames.x86]

1 = %DiskId%,,,.\B_72960

Change this to

1 = %DiskId%,,,.\.

3) You do not need to expand the files.  But in case you ever want to, you could do the following:

expand -r .\*.* <folder of choice>

Not expanding them will save on disk space.

Monday, January 18, 2010

Drivers in Sysprep

If you ever had to build a reference image for sysprep, especially with network, chipset and video drivers, you will appreciate the following tips.

1) I lost the install files/have no idea what drivers I need. How do I get the drivers from the Windows folder?

2) How do I get sysprep to find them.

Two programs that will save a lot of hassle.  Use Double Driver for #1 and Sysprep Driver Scanner for #2.

Sysprep Issues

After looking for a needle in the haystack I found it.  Except it was in the wrong haystack.

I used to have the password be anything than what it was supposed to be in sysprep.inf And after I switched around a few of my scripts, the autologon stopped working.  It is known that you either have sysprep blank the password and set after sysprep, or you type in the admin password in plain text to allow autologon to work.

The real problem was in a script that I used to import the autologon settings.  I think it overrides those found in sysprep.inf.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"ForceAutoLogon"="1"
"AutoAdminLogon"="1"
"DefaultUsername"="admin"
"DefaultPassword"="password"

This worked fine, but I wanted to use reg.exe instead.

echo Setting Autologon...

c:\windows\scripts\reg update "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\ForceAutoLogon=1"
c:\windows\scripts\reg update "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon=1"
echo Setting DefaultUser...
c:\windows\scripts\reg update "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName=admin"
echo Setting DefaultPassword...
c:\windows\scripts\reg update "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword=password"

The problem was in the last line, I used reg add.  I'm pretty sure the entry didn't exist, so it should have worked.  But I changed it to update. Problem solved.