Server Core NTP

This appears to be the way to configure Windows 2008 R2 Server Core as an NTP client (replace the all caps bits with the appropriate values):
w32tm /config /computer:COMPUTER_NAME /manualpeerlist:NTP_SERVER_FQDN /syncfromflags:manual /update

iphlpsvc CPU Usage

On my test Windows Server 2008 R2 Server Core install, I’ve been seeing period CPU usage spikes on what’s basically an idle guest. Task Manager showed an instance of svchost was the offender. I used Process Explorer to narrow down which services it was running. From there, I had to use the process of elimination to find the CPU hog.

I started by disabling the Windows Update service. Even though that turned out not to be the problem, I stand by that. There’s no reason to have a service running when we’re going to run the updates manually.

It seems the IP Helper (iphlpsvc) service was the culprit. Some web searching suggests it’s used for 6to4 (or Teredo) tunneling. We’re not interested in host-tunneled IPv6 connectivity; eventually I want native IPv6. So, I just disabled the service. The guest’s idle CPU usage seems to hover around 1% now.

Server Manager for Windows Server Core 2008 R2

After much searching and a couple of failed attempts, I finally found the instructions for configuring Windows Server Core 2008 R2 so that it will accept remote connections. Visit and search the page for the “To configure remote management on the Server Core installation option of Windows Server 2008 R2” section. Alternatively, I’ve reproduced the steps here. Continue reading “Server Manager for Windows Server Core 2008 R2”

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).