5

我试过

var process = new Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = filename,
        UserName = "System",
        UseShellExecute = false,
    },
};

process.Start();

但它产生

Win32Exception 未处理

登录失败:未知用户名或密码错误

我将不得不使用CreateProcessAsUser?如何获取适当的参数以传递给该方法?

4

2 回答 2

8

系统帐户密码由 Windows 内部维护(我认为),即尝试通过以这种方式提供凭据以系统帐户身份启动进程最终注定要失败。

但是,我确实找到了一个论坛帖子,该帖子描述了一个巧妙的技巧,可用于通过(ab)使用 Windows 服务在系统帐户下运行进程:

提示:在系统帐户中运行进程 (sc.exe)

或者,Windows Sysinternals 工具PsExec似乎允许您使用-s开关在系统帐户下运行进程。

于 2011-07-13T13:44:09.290 回答
0

LocalSystem如果您想以高权限(它是管理员组的成员)或LocalService普通权限运行您的进程,则用户名应该是

编辑:我的错误 LocalSystem 和 LocalService 不是普通用户,因此,它们不能作为用户名提供。Kragen 的解决方案是正确的

于 2011-07-13T13:40:59.380 回答