Where am I going wrong with this? It’s like the arguments are not even getting executed, it just opens the command prompt, and that’s it. The “results” (StandardOutput) is exactly what shows up when you just open a new command prompt….says Microsoft Windows [Version 6.1.7600] Copyright…blah then the path where the command prompt is starting from.
Anyway, here’s the code that I have:
private static void ExecuteProcess(string processFile, string processArguments)
{
ProcessStartInfo psi = new ProcessStartInfo(processFile, processArguments);
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.UseShellExecute = false;
//psi.CreateNoWindow = true;
Process p = new Process();
p.StartInfo = psi;
try
{
Cursor.Current = Cursors.WaitCursor;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Cursor.Current = Cursors.Default;
if (p.ExitCode == 0)
MessageBox.Show(output, "Results");
else
throw new Exception(p.StandardError.ReadToEnd());
}
catch (Exception ex)
{
Cursor.Current = Cursors.Default;
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
p.Dispose();
}
}
processFile is equal to “cmd.exe”
processArguments is equal to:
csvde -s {servername} -f {filename} -d OU=MyOU,DC=dmz,DC=lan -r "(objectClass=organizationalUnit)" -n
Any help as to why the “arguments” aren’t getting executed would be great!
Edit:
One thing I’ve found so far, Chris’s suggestion about the permissions is true, I needed to set:
psi.Verb = "runas";
But when executing the process it didn’t look like there was a username associated with the process, so I added this line as well:
psi.UserName = Environment.UserName;
Now I’m getting “the stub received bad data”…
I finally got back to working on this and figured out how to get this to work.
I had to specifically set the Username, Password, and Domain of the Process.ProcessStartInfo in order for the process to execute.