English 中文(简体)
Running process as a user from windows service failing with Access is Denied?
原标题:

I am working on a project that requires sandboxing an application. I am able to create a windows user, create a directory, fill the directory with an application, and run the application as a user. This works completely fine running as a console application, but when I install it as a service, I get this exception:

System.ComponentModel.Win32Exception: Access is denied
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()

The code that throws this exception is:

_process = new Process
     {
     StartInfo =
        {
            Arguments = "",
            CreateNoWindow = true,
            ErrorDialog = false,
            FileName = instanceDirectory + "program.exe",
            WorkingDirectory = instanceDirectory,
            UseShellExecute = false,


            UserName = GetUserNameForInstance(_id),
            Password = GetPasswordForInstance(_id),
            Domain = ""
        },
    EnableRaisingEvents = true
    };

_process.Exited += ProcessExited;
_process.Start();

Again, this is only thrown when running as a Windows Service. The service is running under LOCAL SYSTEM according the the Services panel in Windows.

Any Ideas?

最佳回答

You might be better off running the service as a domain account which has the necessary permissions for IO operations (including ACL permissions).

In the below example the "Alterter" service is set to run as the local service account. In your case I d suggest running the service as DOMAINUserAccount.

alt text
(source: windows-xp-services.com)

问题回答

Does the account have the premissions to the resources you are using? Does it have the ability to read and write to the directory?

In these types of situations 99% of the time it is a premission issue.





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签