我试过了
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = filename,
UserName = "System",
UseShellExecute = false,
},
};
process.Start();
但它产生了
Win32Exception was unhandled
Login failed: unknown user name or wrong password
我必须使用 CreateProcessAsUser
吗?
我怎样才能获得传递给该方法的适当参数?
最佳答案
系统帐户密码由 Windows 内部维护(我认为),即尝试通过以这种方式提供凭据作为系统帐户启动进程最终注定要失败。
不过,我确实找到了一篇论坛帖子,其中描述了一个巧妙的技巧,可用于通过(ab)使用 Windows 服务在系统帐户下运行进程:
Tip: Run process in system account (sc.exe)
或者 Windows Sysinternals 工具 PsExec似乎允许您使用 -s
开关在系统帐户下运行进程。
关于c# - 如何在系统 Windows 用户帐户下运行控制台应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679797/