It seems like the optimal upgrade to a Windows server is preceeded by a succession of reboots while a graphical installer emphasizes that the next reboot is imminent. Unfortunately, the saavy systems administrator may have already recognized that this kind of upgrading means your Windows NT server is offline for an extended period of time.
In fact, a recent upgrade had my server offline for nearly an hour. While this might seem like a relatively brief period of time, in the real world this can wreck havoc with users. Not only that, virtually every signficant service pack for Windows has my server rebooting to finish the process.
UNIX platforms do not suffer this affliction. On Solaris, Linux, and BSD it is possible to perform system upgrades while the server is online and a single reboot applys your changes. For example, a recent Linux kernel upgrade from 2.4 to 2.6 required a compile of the new kernel, the addition of the kernel to my bootloader and a single reboot.
The problem isn’t that you have to reboot the server, but that it must be done multiple times and requires significant downtime while the changes are being applied. During the Windows Server 2003 upgrade it was necessary to have my server offline for the duration of the task. All of this is further complicated by the fact that the administrator must have a monitor and a keyboard attached to the server to complete this task.
Features like Remote Installation Services (RIS) don’t really fix this problem, especially since they lack support for laying down server class operating systems like NT Server 2003. While Longhorn introduces a componentized architecture that allows for the assembly of different base Windows distributions from the main codebase, this appears to be targeted at OEM’s and won’t be a tool the lowly systems adminstrator can use to create remote upgrades.
It would be nice if my Windows server upgrades could be done without having to sit down at the server console. Perhaps Microsoft will figure this out in a future release, quite possibly the same version when the Monad shell finally lets me include the elusive pipe in a script that can run on my Windows server.