How to Enable the Windows 7 Remote Registry Service
This page explains how to
enable the Windows 7 Remote Registry service. The benefit is that
using Regedit you can 'Connect Network Registry' and repair a stricken
machine.
If this service has not started, don't worry, I have scripts which will start
remote registry on any machine on your network (firewall permitting).
When you launch regedit and try to 'Connect Network Registry', you
get an error message saying 'Object (Computer) cannot be found'.
This is despite the fact that you can ping the machine.
The situation is that Microsoft implement Remote Registry as a
service, thus you control it just as you would enable the Spooler or
SNMP service.
Windows 7 Enable Remote Registry Manually
Begin with the easiest
method, which is to start the Remote Registry service manually.
Incidentally, knowledge gained here will help you master the scripting
methods to enable a remote registry connection.
To start the Remote Registry services manually
Click on the Start Button, in the Start Search dialog box, type: 'Services'.
Scroll down the list of services until you come to those beginning with 'R'; right-click Remote Registry, and select Start from the short-cut menu.
Alternatively, you can double click the service and check the
settings, see screenshot below.
To Enable Remote Registry Services Using PowerShell
The very first time you try 'Remoting' with PowerShell it's difficult to get
the two machines to see each other. Your best chance of success is to
understand the sequence, then master each step before going onto the next.
WinRm - Pre-requisite for Remote PowerShell
Stage One - Enable WinRm for PowerShell Remoting
Even with all the components installed correctly, (PowerShell v 2.0
CTP3, .Net Framework and WinRm), remoting still won't work until you run
this cmdlet from within PowerShell (not DOS):
Enable-PSRemoting
Note 1: You need remoting setup on both computers.
Note 2: That unlike PSSession commands, this function
only has one 'S' PSRemoting.
Stage Two - Create a Session Between the Machines
New-PSSession -computerName testMachine2 # Or simply:
Enter-PSSession -computer testMachine2
Troubleshooting
If this PowerShell command does not work,
then back to basics. Start with ping testMachine2 (or whatever your
computer is called). Despite what experts say, I disable firewalls for
the duration of troubleshooting, it just gives me peace of mind that a
blocked port is
not the problem. Next check permissions. Log on as someone
with administrative permission on both machines. Still no joy? Then
focus on the WinRM service, are you sure it's functioning correctly? And you
do have PowerShell v 2.0 or later - don't you?
Stage Three - Start the Remote Registry Service
# Check Status (and make sure you have the correct name).
get-Service RemoteRegistry
# The business part of the script start-Service RemoteRegistry
Note 1: For scripting purposes, RemoteRegistry
is all one word, even though it's display name has a space: Remote
Registry.
Encouraging computers to sleep when not in use is a great idea -
until you are away from your desk and need a file on that remote sleeping machine!
Wake-On-LAN really will save you that long walk to awaken a hibernating
machine; however my reason for encouraging you to download this utility is
just because it's so much fun sending those 'Magic Packets'. As Wake-On-LAN (WOL) is free, see
if I am right, and you get a kick from arousing those sleeping machines.
WOL also has business uses for example, wakening machines so that they can have
their patches applied.
To Start the Remote Registry Services Using VBScript
Copy and paste the script below into notepad.
Save the file with a .vbs extension e.g. RemoteRegistry.vbs.
Double click the script, then enter the names of the server.
Wait for a confirmation message.
' RemoteRegistry.vbs ' Sample script to Start Remote Registry on strComputer ' www.computerperformance.co.uk/ ' Created by Guy Thomas February 2007 ' Version 2.4 '
-------------------------------------------------------' Option Explicit Dim objWMIService, objItem, objService Dim colListOfServices, strComputer, strService, strInput strInput = False '
Creates the Input Message Box Do strComputer = InputBox("Which Machine? "_ ," Remote Machine", strComputer) If strComputer <> "" Then strInput = True Loop
Until strInput = True ' NB Spelling of RemoteRegistry (No space). strService = " 'RemoteRegistry' " Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ &
strComputer & "\root\cimv2") Set colListOfServices = objWMIService.ExecQuery _ ("Select * from Win32_Service Where Name ="_ & strService & " ") For Each objService in colListOfServices
WSCript.Sleep 1500 objService.StartService() Next
Here is a scenario for remote registry editing. On a training course I had a Psycho user. He was nothing but trouble,
arrived late, spilt coffee over his monitor and worse still, would not listen to instructions. As
usual, I showed the delegates the
AutoAdminLogon =1 setting. My purpose was to save them typing a difficult password, after each reboot required by the notes.
The problem started when for some bizarre reason, Psycho decided
to disable his keyboard and mouse. After Psycho rebooted his machine, AutoAdminLogon, by design, let his account logon without entering a username and password. His machine was useless; you could use neither the keyboard nor the
mouse. The full horror became apparent when we tried to use Last
Known Good to revert to the previous setting. AutoAdminLogon had overwritten the old control set. His machine was as they say, 'stuffed' - a condition I would have liked to extend to Psycho.
Well, you've probably guessed the happy
outcome, I logged on as administrator at another machine, launched regedit, and then selected 'Connect Remote Registry'. Once I opened Psycho's registry I drilled down to the keyboard and mouse setting
using this path: HKLM, System, CurrentControlSet Services, i8042prt. Then it was a trivial task
to change a REG_DWORD called Start from 4 to 1.
I don't wish to spoil a good story, but I have to point out that the above rescue scenario was on a Windows Server 2003 machine. On
Windows 7 the keyboard and mouse driver is configured differently,
consequently it no longer
supports the above registry settings. 'No worries', as my Australian cousin says, the remote registry principle is sound. No doubt Psycho will find a new way of breaking your machine, and it is quite likely
that remote registry editing will be the only way to recover from his stupidity.
Guy
Recommends: Permissions Analyzer - Free Active Directory Tool
I like the
Permissions Monitor because it enables me to see quickly WHO has permissions
to do WHAT. When you launch this tool it analyzes a users effective NTFS
permissions for a specific file or folder, takes into account network share
access, then displays the results in a nifty desktop dashboard!
Think of all the frustration that this free utility saves when you are
troubleshooting authorization problems for users access to a resource.
In addition to its obvious
registry function, there other services and utilities that rely on the Remote Registry service:
DCDiag, NetDiag and Terminal Services Licensing.
(There is a rumour that Remote Desktop requires the Remote Registry service, but on my machine I was able open a session with an XP Remote desktop, even though
Remote Registry was disabled on the target machine. Do email me if you can shed any light on this rumour, or indeed you know of other services that require Remote Registry.)
Practice
enabling Windows 7 Remote Registry; prepare for that day when you are going to need access to the registry of a sickly machine on
your network. It's easy to forget that the Remote Registry service may not be started on the target machine. For that scenario, I have
instruction on how use PowerShell to restart the Remote Registry on
another network machine
If you like this page then please share it with your friends