Re: HKEY_LOCAL_MACHINE Registry Access
- From: "Willy Denoyette [MVP]" <willy.denoyette@xxxxxxxxxx>
- Date: Tue, 24 May 2005 23:12:54 +0200
"Kevin Swanson" <kevinswanson@xxxxxxxxxxxxx> wrote in message
news:2F1B9F00-D13A-4FF5-8C0D-C21F515F1C5C@xxxxxxxxxxxxxxxx
> I'm attempting some remote registry manipulation via C#. I've written a
> test
> app to simply grab a specified key from a specified hive on a specified
> machine. The call to OpenSubKey is throwing System.SecurityException.
>
> Also of note: Sitting at my local box, I can open regedit and connect to
> the
> remote registry. I see three hives: _CLASSES_ROOT, _LOCAL_MACHINE, and
> _USERS. I can open all but HKEY_LOCAL_MACHINE. When I try to expand that
> one,
> I get a simple error message that tells me almost nothing.
>
> So I'm fairly certain I'm running up against some kind of permissions
> issue.
> This is a dev server, but I still don't want to go mucking around too much
> without knowing what I'm doing. Via Terminal Services, I added LOCAL
> SERVICE
> to HKEY_LOCAL_MACHINE and a few sub keys. That didn't help. I also found
> two
> interesting entries in the Local Security Polcy: Remotely accessible
> registry
> paths and Remotely accesible registry paths and sub-paths. I didn't mess
> around with those much, but I did notice that there's no hive on any of
> the
> entries, and it doesn't LOOK like all of the paths I can see connecting
> remotely via regedit are in those lists (but I could be wrong).
>
> So what's the magic formula for accessing these keys remotely? And are
> some
> of them tied down by default? I don't think anyone here specifically
> decided
> to make the local_machine hive inaccessible remotely...
>
> Here's some details:
> My Machine: Windows 2000 Professional
> Remote Machine: Windows 2003 Server
> I'm an admin on both machines...
>
> Just for fun, here's a code sample:
>
> public static RegistryKey GetKey(RegistryHive hive, string key, string
> server)
> {
> RegistryKey parentKey;
> RegistryKey returnKey = null;
>
> if (server == null || server.Length == 0)
> {
> server = string.Empty;
> }
>
> parentKey = RegistryKey.OpenRemoteBaseKey(hive, server);
>
>
> if (parentKey != null)
> {
> try
> {
> // THE LINE BELOW THROWS
> //
> System.SecurityException
>
> returnKey = parentKey.OpenSubKey(key, true);
> }
> catch(Exception exception)
> {
> // handle the exception!
> returnKey = null;
> }
>
> }
>
> return returnKey;
> }
>
You need to be an admininistrator on the remote machine for this to work.
Willy.
.
- Follow-Ups:
- Re: HKEY_LOCAL_MACHINE Registry Access
- From: Kevin Swanson
- Re: HKEY_LOCAL_MACHINE Registry Access
- References:
- HKEY_LOCAL_MACHINE Registry Access
- From: Kevin Swanson
- HKEY_LOCAL_MACHINE Registry Access
- Prev by Date: Re: read text file
- Next by Date: string.CompareTo(string) oddity/bug/misconseption?
- Previous by thread: HKEY_LOCAL_MACHINE Registry Access
- Next by thread: Re: HKEY_LOCAL_MACHINE Registry Access
- Index(es):
Relevant Pages
|