Problemas com a execução de um processo PsExec a partir do código

Estou com um problema estranho ao tentar executar uma ferramenta de linha de comando .NET remotamente usando o PsExe

Ao executar o PsExec a partir da linha de comando, ele é executado e concluído com perfeiçã

Ao executá-lo em um aplicativo de console (criando um processo, executando o PsExec.exe com os argumentos necessários) - ele está executando O

Ao executá-lo em nossa ferramenta personalizada interna usada para executar tarefas diferentes, ele atinge o tempo limite ou não é concluído com êxit

Aqui está o código que estou usando:

Process p = new Process();

p.StartInfo.FileName = @"C:\PsExec.exe";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;

string arg = "-snapshot -display C:\*.msi -s";

p.StartInfo.Arguments = @"\\10.161.203.106 -u user -p pwd -cf C:\FVT.exe " + arg;

Logger.Info(this, "Starting process");

p.Start();
var ended = p.WaitForExit(60 * 1000);

if (!ended)
{
    throw new Exception("Process timed out.");
}

Logger.Info(this, "Process ended");

using (StreamReader sr = p.StandardOutput)
{
    string buffer = sr.ReadToEnd();
    Logger.Info(this, buffer);
}

Este código funciona bem a partir da linha cmd ou de um aplicativo independente!

Não tenho idéia do que mais poderia estar errado aqu

Nossa ferramenta interna gera um novo thread e executa esse código nel

Atualizar

linha de comando + args na janela da linha de comando - funcionando. Mesmo cmd + args, executado como um Processo com RedirectOutput - paralisa e retorna no tempo limit

Isso pode ser um bug no .NET? (isso acontece com outros programas, arquivos em lote, etc.

questionAnswers(2)

yourAnswerToTheQuestion