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

我想要做的是启动另一个应该将文件写入磁盘的进程(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异常,告诉我“拒绝访问”。
有人知道我如何实现目标吗?

最佳答案

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

关于c# - 允许系统帐户启动模拟过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19633796/

10-10 13:08