c# - 如何在系统 Windows 用户帐户下运行控制台应用程序?

标签 c# .net process createprocessasuser

我试过了

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/

相关文章:

c# - .NET Remoting 和多线程查询

c# - 如果在 C# 中收到新的 Outlook 邮件,则启动方法

java - 从 Java 与 Exchange 2003 对话

c# - MongoDB中的默认ObjectId

multithreading - 阻塞、挂起和 sleep 之间有什么区别

c# - 简单的 WEB API REST 项目

c# - Interlocked.Exchange<T> 比 Interlocked.CompareExchange<T> 慢?

c# - 我应该扔/期望扔什么?

java - 将带空格的字符串传递给 Java 中的执行命令以执行 bash 脚本

c# - 无法设置 Process.StartInfo.WorkingDirectory 以从 c# 调用 exe