| Executive Summary:
Mark Minasi continues his ongoing Server Core configuration effort by changing the machine’s display resolution. Because Server Core lacks a GUI, some registry tinkering is in order. |
Over the past few months in this column, we’ve discussed
how to configure Windows Server 2008’s Server Core.
We’ve named the server, given it a DNS suffix, assigned
static IP values, enabled Automatic Updates, added
server modules, and set up remote administration. This
month, let’s change the display resolution—a simple
task that becomes quite a challenge without a GUI.
Ever since Windows 3.0, you’ve been able to easily adjust your
computer’s screen resolution: Simply right-click the desktop and
access the personalization settings. However, in a GUI-less realm,
you’ll have to do a bit of registry cave-diving.
Registry Dive
Open Regedit—one of the few GUI tools that works on Server
Core—and navigate to the HKEY_LOCAL_MACHINE\SYSTEM CurrentControlSet\Control\Video key. Expand the Video key, as
you see in Figure 1, and you’ll see three subkeys whose names are
GUIDs. When you set up a Windows computer, the system locates
all relevant video driver/adapter pairs and gives them random
GUIDs. (Long, random, hexadecimal strings are obviously much
more straightforward than notations such as “SVGA driver on
NVIDIA Adapter 1.”) Under each GUID-named subkey is a 0000
subkey. Inside one of those 0000 subkeys are the registry entries
you’re looking for—only one adapter/driver combination is actually
functioning on your Server Core machine, and modifying any of the
non-functioning ones won’t accomplish anything.
To find the one that you want, examine the contents of each 0000
subkey, paying special attention to the Device Description entry. On
my Server Core machine, the Device Description values are Standard
VGA Graphics Adapter, RDPDD Chained DD, and VMware SVGA
II. Because my Server Core system runs under VMware and I’ve
installed VMware Tools, the 0000 subkey I’m looking for is the third
one: VMware SVGA II. Be aware, however, that some drivers might not
have a Device Description entry; on my Lenovo ThinkPad T61P laptop,
for example, the registry’s 0000 entries include the standard VGA and
RDPDD entries, as well as a key containing not the Device Description
entry, but a DriverDesc entry with the value NVIDIA Quadro FX 570M
(which must be the one I normally use on my desktop). So, as always
when cave-diving into the registry, bring your brightest lamp!
After you locate the correct 0000 key, look for two REG_DWORD
entries inside it: DefaultSettings.XResolution and DefaultSettings
.YResolution. Changing these values will change your screen’s width
and height, but be sure to enter the values you want! When you
double-click a REG_DWORD entry to change its value, the registry
editor’s Edit DWORD (32-Bit Value) editing dialog box lets you
enter either decimal or hexadecimal, but it assumes you’re entering
hex. If you enter 1024, intending to specify a 1024 × 768 resolution,
the value might show up as 4132 (the decimal value for 1024 hex).
After rebooting your system, you might get a blank screen or—in
rare cases—a destroyed monitor. So, before you exit Regedit, take a
moment to look at the value it thinks you entered!
Now, log off and log back on to see the new screen-resolution.
Remember, the easy way to log off a Server Core machine is by typing
shutdown -l
Yes, that’s a lowercase L, not the numeral 1.
Oops?
If the change didn’t work, you can try a few things. First, doublecheck
the Device Description value in the 0000 key that you chose.
Sometimes, I see more than one 0000 that refers to my video-card
type. Second, double-check the width and height entries for
improper hexadecimal values. Finally, remember that you won’t see
the change until you log off and log back on.
End of Article