apt-get on Windows Server Core…sort of

I did my first install of Windows 2008 R2* Server Core for testing purposes. It’s pretty interesting for a Linux guy like me. Without the GUI, it’s a lot lighter weight than regular Windows Server. I found Greg Shields’s Beginners Guide to Server Core in Windows Server 2008 very helpful.

That article covered setting up automatic Windows Updates. However, I don’t like automatic updating on servers. I prefer to the have the servers download the updates so applying them is quick, but I want a person to actually click the button to install them. This way, they can test after the updates and if something does break, we know that someone changed something. There’s not much worse than something breaking out-of-the-blue when it was running fine. Now, problems from Windows Updates are extremely rare, but not impossible.

My web searching yielded several references to the WUA_SearchDownloadInstall.vbs script. I tested it out and initially had some trouble because I forgot to run it under cscript, even though that’s clear from the instructions. So I decided to wrap it with a batch file. Being an Ubuntu guy, I decided to call it apt-get. Then I decided to actually implement the basic apt-get calling convention (apt-get update ; apt-get dist-upgrade) my colleagues and I are used to. (In truth, being Ubuntu users, it’s “sudo apt-get …”.)

So I present to the world my little apt-get.bat script. Drop it (and the aforementioned WUA_SearchDownloadInstall.vbs script) into C:\Windows\System32 and you’re set.

* I really wish Windows Server 2008 R2 was called Windows 2009 Server**. The “R2” naming is really annoying as people tend to treat them like they’re basically the same, which they aren’t.
** That’s not true. I really wish it was called Windows 7 Server.

Update 2010-05-04: I modified the apt-get.bat script to set the Windows Update service to only run on demand and stop it after an upgrade (or dist-upgrade).

One Reply to “apt-get on Windows Server Core…sort of”

Leave a Reply

Your email address will not be published. Required fields are marked *