 | Friday, December 25, 2009 |
| Change The Default Background in Windows 7 |
| By James Acosta |
| |
|
If you're an Enterprise Administrator in charge of mass deploying Windows 7,
you know that the level of customization you do to ensure a look and feel that
reflects your company can be as far from the default configuration as the OEM configuration that was on the hardware when you took it out of the box from the
manufacturer. Windows 7 brings a new level of obfuscation to the
customization of even the smallest things, and although Microsoft might not feel that you
qualify for OEM configuration knowledge, you do.
One of the first customizations that I tend to do is change the background
image displayed at the logon prompt; something fitting your company's look and
which includes the logo. Changing it would seem upfront, but basic image
swaps will prove unsuccessfully, and a scan thru the Windows 7 RSK will not
yield information. This OEM customization is actually very easy to do once you
know how.
Create Your Images
Although you can get away with a single image, Windows 7 is much smarter than
prior versions in that it detects the screen ratio and makes graphical display
decisions based on the environment. To take advantage of this, you'll want
to create different versions of your image, so using a graphics program such as PhotoShop or CorelDRAW to create a master image that can be resized easily will
prove beneficial.
Take into consideration the default resolutions of all the hardware in your
environment. The default resolution will be the "recommended" resolution
your graphics card shows after it has been properly installed but before any
user makes a modification. You can obtain this a few different ways:
Set objWMI
= GetObject("winmgmts:\\.\root\CIMv2")
Set colRes
= objWMI.ExecQuery( _
"SELECT * FROM Win32_DesktopMonitor")
For Each objRes
In
colRes
WScript.Echo objRes.ScreenWidth & _
"x" & objRes.ScreenHeight
Next
- Navigate: Control Panel | Appearance And Personalization | Display |
Screen Resolution - From there, note the value in the Resolution dropdown.
- Use a script to query the value, as displayed to the right. The
benefit of using a script is that you can also query systems remotely.
A simple change on the first line substituting the period for the NetBIOS or
IP address of a remote system, and you can save yourself a lot of foot work.
Once you have created your master image, you will want to go thru your list
of desired screen resolutions and fit your image accordingly (i.e., the width
and height of the image matches the screen resolution width and height.).
For each screen resolution desired, save your master image as a JPG naming it
background####x####.jpg where
####x#### is the matching width and height (e.g., an image that is 1024
by 768 would be named
background1024x768.jpg). Ensure that you set the compression high
enough that your final image is under
256kb in size, otherwise Windows will skip it.
The last step is to create a default image; one that Windows will use if it
can not find a suitable resolution-specific file. Windows will always be
setting the display on any background image as Stretch To Fit, so try and come
up with a default image that won't look too off if it is stretched widescreen
(portrait or landscape) or kept as a standard ratio. Save this image file
as
backgroundDefault.jpg with the same compression settings.
Configure The File System
On your target systems, you will need to create a folder to place all your
image files. This folder will not exist:
%WinDir%\System32\oobe\info\backgrounds
Copy all your created images into this folder.
Configure The Registry
Windows will ignore your folder and images if it isn't specifically told to
use the files. To do this, you must create an entry in registry.
There are two reported locations that work, personally I've have no issues when
only using the first, but adding both won't hurt anything:
- Create the following key:
HKLM\Software\Microsoft\Windows \CurrentVersion\Authentication\LogonUI\Background
- Create a new DWORD
value named
OEMBackground and give it a value of
1
- Navigate to:
HKLM\Software\Policies\Microsoft \Windows\System
- Create a new DWORD
value named
OEMBackground and give it a value of
1
A note of caution here. Ensure that during your automation that the
registry work is done after Windows has completed it's setup. I recommend
making this one of the last steps before software installation. Too early
and I've seen where Windows removes all or some of the registry modifications
and you're left with the default Windows background. If the
Authentication
key looks sparse or under populated, move your process to later in the build.
Summary
Windows will need a reboot in order for your changes to be shown.
Otherwise, your customer's first customization experience will be firmly in
place and your new background displayed at the logon screen.