【问题标题】:Access Denied when executing Process.Start from Windows Service从 Windows 服务执行 Process.Start 时访问被拒绝
【发布时间】:2011-05-10 10:50:02
【问题描述】:

我正在尝试以其他用户身份从服务运行进程。

Process.Start(applicationPath, params, account, SecureStringPassword, "");

服务正在“本地系统”帐户下运行。

account 参数是一个类似于“WORKSTATION6\Tester”的字符串。此用户是管理员组的成员。

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

但每次我尝试启动进程时都会出现“拒绝访问”异常。你有什么建议?

【问题讨论】:

  • 你试过在Process Monitor看吗?这可能会向您确切显示它无法访问的内容。但听起来用户切换可能是问题所在。
  • 我试过 ProcMon,但它对我没有任何用处。日志中没有错误。那么用户切换问题呢?

标签: c# .net windows-services


【解决方案1】:

在 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");

【讨论】:

  • 我也有同样的问题...已经尝试调用 .bat 文件,使用 WMI,模拟,但没有成功。 @E-Max 有什么更新吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多