【问题标题】:Allow System Account to start impersonated process允许系统帐户启动模拟进程
【发布时间】:2013-11-07 03:59:27
【问题描述】:

我正在做一个项目,我有一个在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 异常,告诉我“访问被拒绝”。 有人知道我如何实现我的目标吗?

【问题讨论】:

  • 你检查this问题的答案了吗?

标签: c# process system impersonation


【解决方案1】:

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

【讨论】:

  • 是的,确实如此。我#正在尝试使用系统本地管理员帐户
  • 嗯。我已经对其进行了测试,它对我来说效果很好......你从哪里得到异常。您是否尝试过执行 cmd.exe 之类的其他内容?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 2023-03-10
  • 2013-02-04
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多