从Windows服务执行Process.Start时拒绝访问

E-M*_*Max 7 .net c# windows-services

我正在尝试以另一个用户身份从服务运行流程.

Process.Start(applicationPath, params, account, SecureStringPassword, "");
Run Code Online (Sandbox Code Playgroud)

服务正在"本地系统"帐户下运行.

account参数是像"WORKSTATION6 \测试仪"的字符串.此用户是Administrators组的成员.

"应用程序路径"是指程序文件,因此每个用户都可以从中读取.

但每次我尝试启动这个过程时,我都会遇到"拒绝访问"的异常.你有什么建议吗?

Mar*_*own 0

SecureString 页面上有一个如何使用 Process.Start 的示例。http://msdn.microsoft.com/en-us/library/system.security.securestring(v=VS.90).aspx#Y682

我认为您需要做的是将您的用户帐户的域放在最后一个参数中,如下所示:

Process.Start(applicationPath, params, "Tester", SecureStringPassword, "WORKSTATION6");
Run Code Online (Sandbox Code Playgroud)