2 years ago

#72219

test-img

Daniel Pomrehn

C# Windows Service with Registry Access and rundll32.exe

I have a C# Windows Service running under the LocalSystem account. I need access to the Windows registry in this service. I assume that this is only possible when running as LocalSystem? Or can I install the service as User context and have access to HKEY_CURRENT_USER?

The systems where the service is used is normally just used by one user. So there will be just "one" HKEY_CURRENT_USER. Another option is, to setup Remote Apps not for one user, but for all users. But I have no idea how to do that. Currently I know only the way listed below by running rundll32.exe.

As a second requirement I need to execute rundll32.exe to create RemoteApp Connection. The following Code is not working properly:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "/C rundll32.exe tsworkspace,WorkspaceSilentSetup C:\\RemoteConfig.wcx";

using (Process process = Process.Start(startInfo))
{
    process.WaitForExit();
}

What must the Service be like to access HKEY_CURRENT_USER? How can I run rundll32.exe? just running it directly caused some trouble when testing it in a console application. But with help of cmd.exe it worked.

c#

registry

0 Answers

Your Answer

Accepted video resources