由于在创建子进程的时候需要加入startupInfo.lpDesktop = @"winsta0\default"; 
所以不能直接调用Process 类, 写了一个UserSpecifyProcess继承自Process, 调用win32 api CreateProcessWithLogonW 来创建子进程,
可是不能获取子进程的输出,谁能帮我看一下原因, 谢谢。 
代码在附件中,调用如下:
             UserSpecificProcess process = new UserSpecificProcess();
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.CreateNoWindow = false;
            process.StartInfo.FileName = "D:\\ConsoleTest.exe"; // any exe file 
            process.StartAsUser("user", "domian", "pwd");
            Console.WriteLine("output:" + process.StandardOutput.ReadToEnd());