本地服务不在不同的用户帐户下调用.exe

时间:2016-01-24 18:02:30

标签: c#

我有一个安装为“SYSTEM”的服务,它调用一个进程,但我需要以用户身份运行它。

try
{
    System.Security.SecureString ssPwd = new System.Security.SecureString();
    System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
    proc.UseShellExecute = false;
    proc.Verb = "runas";
    proc.UserName = "Stevie";
    string p = "Stevie";
    for (int x = 0; x < p.Length; x++)
    {
        ssPwd.AppendChar(p[x]);
    }

    proc.Password = ssPwd;
    proc.FileName = @"C:\DailyTask\GenFile.exe";
    proc.Arguments = "-csv";
    System.Diagnostics.Process.Start(proc);
}
catch(Exception errrr)
{
    m.log(errrr.ToString());   
}

我使用ProcMon来查看它是否在不同的用户下运行但它不会启动我得到以下错误。

Sunday, January 24, 2016 --- System.ComponentModel.Win32Exception (0x80004005):Access is denied
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at DirectoryWatcher.MyPOSystemWatcher.Open_f(String filePath)

我对目录及其内容拥有完整的权利。 我已经将它分享给“Everyone”并赋予它读/写访问权限。

不确定我还缺少什么。我可以手动运行该过程而不会出现任何错误。

0 个答案:

没有答案