允许系统帐户启动模拟过程

时间:2013-10-28 11:37:04

标签: c# process system impersonation

我正在开发一个项目,我在Local System Account下运行Windows服务。

我想要做的是启动另一个应该将文件写入磁盘的进程(C ++应用程序)。

如果我只使用Process.Start,那么目标应用程序也会在Local System Account下运行,据我所知,我不能简单地在任何地方写文件。

出于这个原因,我试图让目标应用程序以不同的用户身份运行。

ProcessStartInfo psi = new ProcessStartInfo(@"C:\Path\to\Application.exe", parameters);
psi.UseShellExecute = false;
psi.UserName = "Username";
System.Security.SecureString sec = new System.Security.SecureString();
foreach (Char c Password)
    sec.AppendChar(c);
psi.Password = sec;
psi.Domain = ".";
psi.LoadUserProfile = true;
Process.Start(psi);

但我得到一个Win32异常告诉我“Acces被拒绝”。 有人知道如何实现我的目标吗?

1 个答案:

答案 0 :(得分:0)

检查文件系统权限。您使用的用户是否具有指定应用程序的执行权限?