Home > Articles > Operating Systems, Server

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

Keeping the Registry Safe

The sheer wealth of data stored in one place makes the Registry convenient, but it also makes it very precious. If your Registry went missing somehow, or if it got corrupted, Windows 7 simply would not work. With that scary thought in mind, let's take a moment to run through several protective measures. The techniques in this section should ensure that Windows 7 never goes down for the count because you made a mistake while editing the Registry.

Preventing Other Folks from Messing with the Registry

Do you share your computer with other people? How brave! In that case, there's a pretty good chance that you don't want them to have access to the Registry Editor. In Windows 7, User Account Control automatically blocks Standard users unless they know an administrator's password. For other administrators, you can prevent any user from using the Registry Editor by setting a group policy:

  1. Select Start, type gpedit.msc, and then press Enter.
  2. Open the User Configuration, Administrative Templates, System branch.
  3. Double-click the Prevent Access to Registry Editing Tools policy.
  4. Click Enabled.
  5. In the Disable Regedit from Running Silently? list, click Yes.
  6. Click OK.

Note that you won't be able to use the Registry Editor, either. However, you can overcome that by temporarily disabling this policy prior to running the Registry Editor. Even better, you can run the following script, which toggles the Registry Editor between enabled and disabled:

Set objWshShell = WScript.CreateObject("WScript.Shell")
'
' Get the current setting
'
intDisableRegistryTools = Int(objWshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools"))
'
' Toggle the current setting
'
If intDisableRegistryTools = 0 Then
    objWshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 2, "REG_DWORD"
    WScript.Echo "The Registry Editor is disabled."
Else
    objWshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 0, "REG_DWORD"
    WScript.Echo "The Registry Editor is enabled."
End If

Note that you need to run this script as the administrator. I show you how to do this in Chapter 30, "Programming the Windows Scripting Host."

  • See "Running a Script as the Administrator," p. 664.

Backing Up the Registry

Windows 7 maintains what is known as the system state: the crucial system files that Windows 7 requires to operate properly. Included in the system state are the files used during system startup, the Windows 7–protected system files, and, naturally, the Registry files. Windows 7's Backup utility has a feature called a system image backup that enables you to easily back up the current system state, so it's probably the most straightforward way to create a backup copy of the Registry should anything go wrong. See Chapter 7, "Maintaining Your Windows 7 System," for the details.

  • See "Creating a System Image Backup," p. 157.

Saving the Current Registry State with System Restore

Another easy way to save the current Registry configuration is to use Windows 7's System Restore utility. This program takes a snapshot of your system's current state, including the Registry. If anything should go wrong with your system, the program enables you to restore a previous configuration. It's a good idea to set a system restore point before doing any work on the Registry. I show you how to work with System Restore in Chapter 7.

  • See "Setting System Restore Points," p. 149.

Protecting Keys by Exporting Them to Disk

If you're just making a small change to the Registry, backing up all of its files might seem like overkill. Another approach is to back up only the part of the Registry that you're working on. For example, if you're about to make changes within the HKEY_CURRENT_USER key, you could back up just that key, or even a subkey within HKCU. You do that by exporting the key's data to a registration file, which is a text file that uses the .reg extension. That way, if the change causes a problem, you can import the .reg file back into the Registry to restore things the way they were.

Exporting the Entire Registry to a .reg File

The easiest way to protect the entire Registry is to export the whole thing to a .reg file on a separate hard drive or network share. Note that the resulting file will be about 150MB on a default Windows 7 system, and possibly twice that size (or more) if you have lots of other programs installed, so make sure the target destination has enough free space.

Here are the steps to follow:

  1. Open the Registry Editor.
  2. Select File, Export to display the Export Registry File dialog box.
  3. Select a location for the file.
  4. Use the File Name text box to type a name for the file.
  5. Activate the All option.
  6. Click Save.

Exporting a Key to a .reg File

Here are the steps to follow to export a key to a registration file:

  1. Open the Registry Editor and select the key you want to export.
  2. Select File, Export to display the Export Registry File dialog box.
  3. Select a location for the file.
  4. Use the File Name text box to type a name for the file.
  5. Activate the Selected Branch option.
  6. Click Save.

Importing a .reg File

If you need to restore the key that you backed up to a registration file, follow these steps:

  1. Open the Registry Editor.
  2. Select File, Import to display the Import Registry File dialog box.
  3. Find and select the file you want to import.
  4. Click Open.
  5. When Windows 7 tells you the information has been entered into the Registry, click OK.
  • + Share This
  • 🔖 Save To Your Account