I've been experimenting with the Server Core version of Windows Server 2008 for a project I'm working on. You may be aware that Win2K8 ships with this great new streamlined "Server Core" mode that you can select during setup. Installation is lightining-fast, just 10 minutes on my Core 2 Duo machine. (And that's including the 2 reboots, hardware detection, and everything!) You end up with only a very minimal set of GUI tools, including notepad and regedit. The thing is lean and mean, and can run very well in just half a gig of RAM. You can still copy some Windows executables into the environment and have them run. Here for instance is Solitaire running under Server Core:
While this simple GDI-centric app works, others will not. One of the major limitations is that no trace of Internet Explorer is available. At first this probably doesn't sound like that big a deal, perhaps even a welcome change for a server environment. But before you start rejoicing, consider that all of the Common File Dialogs, like File Open and Print, come from Internet Explorer. Okay, so easy enough to install an older standalone version of IE to bring this functionality back, right? No. All you will get is an error message about how the terminal server needs to be in application installation mode to continue. If you try to do the common "CHANGE USER /INSTALL" trick from the command line to fool it, it comes up with a message about terminal servers in remote administration mode can't be set to install vs execute. I didn't find an easy way to install Internet Explorer anyway, but I didn't try very hard either.
Another limitation with not having IE around is that all of Microsoft's versions of the .NET Framework (the ones for Wintel boxes anyway) require Internet Explorer 5.01 or later. You can still install Mono from Miguel deIcaza and team, and it will serve out ASP.NET content using XSP pages. But for those that prefer the standard configuration of ASP.NET 2.0 that comes out of the box with Server 2008, that's not possible with Server Core... yet. But there is talk of creating an updated version of the .NET 2.0 framework that will work in Server Core for ASP.NET.
Another limitation related to IIS 7 is that all those cool new hooks available in integrated pipeline mode can only be used with native code, so no managed modules. And you can't do remote administration since it also relies on the .NET Framework. IIS 7 is still a great high-performance architecture when running under Server Core, but just not as convenient as when it's on a system that can run managed code.
The final limitation with not having the .NET Framework onboard is that PowerShell is not available. So needless to say, I'm really looking forward to a custom release of the .NET Framework designed for Server Core!
On the upside, what you get is a great little server platform with a really small footprint. You can make it a domain controller, DNS server, DHCP, IIS with FastCGI, and so on. No SQL or Exchange since they also require IE and the .NET Framework. It's quite possible that SQL and Exchange will never be supported on servers using this kind of small footprint.
When administering, you get a couple of handy GUI-based tools to help you out. First, MSINFO32, which won't let you change settings, but does let you at least visualize how the machine is configured:
You get basically a read-only view of device manager, the services running on the system, and many other handy tidbits of info available through WMI. For services this is a very handy view to know what's running, and the short names you need to use with NET START and NET STOP.
Second, you get the always useful Notepad program. The standard File / Open and File / Save dialogs have been changed out to use the old-school 32-bit API calls that were first made available back in Windows NT 3.1:
Third, you still get regedit! The good one that lets you change permissions. It's also modified to work with the older common file dialogs, so you can import and export whole keys:
A final tool worth mentioning is a command line tool that you can only get in Server Core. It's oclist, which is designed to help you out when you use ocsetup:
Consider that since you don't have access to Server Manager (which is the new Add Remove Windows Components thing in Server 2008), it's harder to install stuff. Imagine how annoying it would be to figure out the cryptic command line junk needed to install and uninstall features of Windows just using ocsetup.exe and pkgmgr.exe blind. It would be a nightmare. Fortunately you can run this tool, oclist, to see exactly what features are available to install, and it shows them in a hierarchy that describes the dependencies involved.
There's no facility to upgrade a Server Core install to a full install of Server 2008, or vice-versa, but you can at least copy the oclist tool over to another machine that's running the full Server 2008, and then run it to see all the cryptic names of exactly what is installed on that system. This allows you to more easily replicate that same server scenario on the smaller-scale Server Core. Note that the full (non-Core) install of Server 2008 has LOTS more stuff that gets listed when using oclist.
One final thing to mention is that although the full Control Panel is not available, you get two of the applets, the timeDate.cpl and intl.cpl:
Everything runs as the elevated Token. No Vista-style "whack-a-mole" with UAC popups. Notice that the command prompt itself is running elevated all the time. I don't even think you can start a process as LUA.
All in all I'm impressed with this option for Windows. Kind-of reminiscent of the good ol' DOS days when we were all rooted in the basics, and the command line was king. I expect lots of shops will take advantage of this lightweight and secure environment.