VirtualBox and Windows 2000

I had great success virtualising Windows Vista and Windows XP. I wanted to see if I could do the same with Windows 2000. Could I achieve the same outcome? Windows 2000 was pretty long in the tooth having been released in 1999 with extended support ending in 2010.

Installing Windows 2000 in a VM was straightforward. Unlike Windows XP, file services between FreeNAS and Windows 2000 worked straight off without any additional tweaking.

Windows Update (WU) was a completely different story however. I followed suggestions from numerous forums to no avail. Nothing I tried seemed to work. There was a good reason for this. By chance, I followed a lead that led me to this YouTube video. It was the only thing I had come across that worked. It turns out that the key to getting WU working on Windows 2000 is a modified root certificate that is not Microsoft endorsed. Edit: The link to the video is no longer working. Follow this post for an alternative approach to getting WU working. Rather than continuing to support this legacy OS, it seems Microsoft are trying to steer their user base away from it. Once WU burst into life, there was a large group of around 102 high-priority patches and six optional patches to install.

With the system patched, and with network file services working, it was time to turn my attention to print services. Did this turn out to be a drama! Printer drivers for Windows 2000 are becoming harder to source. For instance, I wasn’t able to find a Windows 2000 driver for my older M175nw from the HP support site. It seems HP are doing a Microsoft and, by stealth, are making older printer drivers unavailable.

First stop in my search for a suitable driver was HP’s own support site. While a driver as not available, the suggestion, as indicated on this page, that one existed was there. I then went searching for a Windows 2000 driver for the printer, which I found, but attempting to install it threw up the following dialogue box:


Not a valid Win32 application? I tried again, downloading drivers from a variety of sites, but same problem. I then went searching for reasons behind the problem. They ranged from ‘file corruption’ to ‘trying to run a 64-bit app on a 32-bit system’. There was even a site, URL withheld, that gave a half a dozen reasons for the problem. As it turned out, the writer was way off track.

I was beginning to get a little frustrated at this stage. What to try next? I know! Try to find the original install disk, which I still had, and attempt to install a Windows 2000 driver from it. The disk, which had no errors and could be read on the Windows 7 host PC, could not be read under Windows 2000. This is the dialogue box that appeared.


What the hell was going on? Next thing I tried was to look for a HP Universal Printer Driver (UPD) that might support the printer. Hmm…no luck here finding a UPD that would work on Windows 2000. This HP article indicated that UPD version 5.3.1 was the first to support the M175nw. Now we’re getting somewhere. Version 5.5.0 was the earliest version held in HP archives. So I downloaded and attempted to install that.  Damn it! Not a valid Win32 application!

I was nearing the end of my tether. One last-ditch effort.  By chance, I stumbled across the following site. It had a version 5.4.5 of the UPD. I expected to get the ‘invalid Win32 application’ dialogue box when installing it, but no, it burst into life. Finally, I was able to get print services working under Windows 2000.

I still wanted an explanation for the ‘invalid Win 32 application’ error as it appeared so frequently under Windows 2000 when attempting to get print services working. I hadn’t seen this error under Windows XP or Windows Vista VM installations.

The following text from this VirtualBox forum is likely to be the most accurate assessment of the error:

The “not a valid Win32 application” error in this case must be triggered by the fields in the .exe’s IMAGE_OPTIONAL_HEADER: Major/MinorOperatingSystemVersion and Major/MinorSubsystemVersion . They are typically set to the same value that corresponds to a Windows internal version number.

If those in your app are set to “5.1”, it will run on XP (5.1) but not 2000 (5.0). You can hack the values in all the executable modules of the app to circumvent this, but the app may still fail due to API changes between the OS versions.


Words that describe my experience in key areas in getting Windows 2000 to a functional state:

  1. Installation – Trivial.
  2. Windows Update – Wow! There’s some clever people out there! 
  3. File services – Trivial.
  4. Print services – Frustrating.


  1. Using Windows 2000 Today – Install Modern Software on Windows 2000!
  2. HP UPD – HP Universal Print Driver (UPD) supported printers
  3. HP Universal Print Driver (UPD) PCL version 5.4.5
  4. [SOLVED] not a valid Win32 application
  5. The following sites led nowhere, but through a process of elimination, helped steer my thinking.
  6. Getting Microsoft Update To Work In Windows 2000
  7. Windows 2000 and Windows Update Error 0x800B0109
  8. Windows 2000 Updates Not Working- Windows Update Agent 3.0






Keep Reading



Leave a Reply