Registry issue

R

Ron Hinds

I've been developing a Service in VB.NET. I set the serivce up to run under
the NETWORK_SERVICE account. I need to store several parameters for the
service to load on start from the registry. I tried to create a new subkey
in the service's ket that is created at install time, i.e.,
HKLM\SYSTEM\CurrentControlSet\Services\MyService. My idea was to create a
subkey called Parameters (like the Windows Time service does) and store my
data there. But I cannot even open that key - it always returns Nothing -
then I get an error missing parameter if I try to create it. So I figured I
would just create it under HKLM\SOFTWARE\MyCompany\MyService. I get the same
result. The only time it does not fail is when I use
HKCU\MyCompany\MyService. But that won't be available for my configuration
utility to make adjustments. It is appaerntly a permissions problem. Can
anyone point me to a good Registry exampe in VB.NET or tell me what is wrong
with this code?

rplBaseKey = Registry.LocalMachine.OpenSubKey("SYSTEM\Services\MyService",
RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.FullControl)

If rplBaseKey Is Nothing Then

'Should never happen - key is created automatically on install

rplBaseKey = Registry.LocalMachine.CreateSubKey("SYSTEM\Services\MyService",
RegistryKeyPermissionCheck.ReadWriteSubTree)

End If

rplParamKey = rplBaseKey.OpenSubKey("Parameters", True)

If rplParamKey Is Nothing Then

'Create the key if it doesn't exist

rplParamKey = rplBaseKey.CreateSubKey("Parameters")

End If
 
R

Ron Hinds

Ron Hinds said:
I've been developing a Service in VB.NET. I set the serivce up to run
under the NETWORK_SERVICE account. I need to store several parameters for
the service to load on start from the registry. I tried to create a new
subkey in the service's ket that is created at install time, i.e.,
HKLM\SYSTEM\CurrentControlSet\Services\MyService. My idea was to create a
subkey called Parameters (like the Windows Time service does) and store my
data there. But I cannot even open that key - it always returns Nothing -
then I get an error missing parameter if I try to create it. So I figured
I would just create it under HKLM\SOFTWARE\MyCompany\MyService. I get the
same result. The only time it does not fail is when I use
HKCU\MyCompany\MyService. But that won't be available for my configuration
utility to make adjustments. It is appaerntly a permissions problem. Can
anyone point me to a good Registry exampe in VB.NET or tell me what is
wrong with this code?

rplBaseKey = Registry.LocalMachine.OpenSubKey("SYSTEM\Services\MyService",
RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.FullControl)

If rplBaseKey Is Nothing Then

'Should never happen - key is created automatically on install

rplBaseKey =
Registry.LocalMachine.CreateSubKey("SYSTEM\Services\MyService",
RegistryKeyPermissionCheck.ReadWriteSubTree)

End If

rplParamKey = rplBaseKey.OpenSubKey("Parameters", True)

If rplParamKey Is Nothing Then

'Create the key if it doesn't exist

rplParamKey = rplBaseKey.CreateSubKey("Parameters")

End If

Fixed - need to install service to run as "Local System" instead of "Network
Service" in Installer.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top