title: Run CMD from Process.Start wont Start
body: <p>I need to run this command from cd.bat</p>
  
  <pre><code>powershell -windowstyle hidden -command "Start-Process cmd -ArgumentList '/c takeown /f \"C:\Windows\System32\wuaueng.dll\" &amp;&amp; icacls \"C:\Windows\System32\wuaueng.dll\" /grant *S-1-3-4:F /t /c /l' -Verb runAs"
  </code></pre>
  
  <p>When i run this BAT manualy from right click -> Run as Administrator it work perfect, when i try to Run from CMD:</p>
  
  <pre><code>Process.Start(Application.StartupPath + "\\cd.bat");
  </code></pre>
  
  <p>CMD Start but command wont work, why?</p>
  
  <p>My Application has Administrative permission in Manifest</p>
  
  <pre><code>&lt;requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /&gt;
  </code></pre>
  
  <p>I have also tried with normal command:</p>
  
  <pre><code>proc.StartInfo.FileName = "CMD.exe";
  proc.StartInfo.Arguments = "/c powershell -windowstyle hidden -command \"Start - Process cmd - ArgumentList '/c takeown /f \"C:\\Windows\\System32\\wuaueng.dll\" &amp;&amp; icacls \"C:\\Windows\\System32\\wuaueng.dll\" /grant *S-1-3-4:F /t /c /l' - Verb runAs\"";
  proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
  proc.Start();
  </code></pre>
  
  <p>and</p>
  
  <pre><code> var p = new Process();
              p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
              p.StartInfo.FileName = "cmd.exe";
              p.StartInfo.WorkingDirectory = @"C:\Windows\System32";
              p.StartInfo.Arguments = "/k powershell -windowstyle hidden -command \"Start - Process cmd - ArgumentList '/c takeown /f \"C:\\Windows\\System32\\wuaueng.dll\" &amp;&amp; icacls \"C:\\Windows\\System32\\wuaueng.dll\" /grant *S-1-3-4:F /t /c /l' - Verb runAs\"";
              p.StartInfo.CreateNoWindow = true;
              p.StartInfo.RedirectStandardError = true;
              p.StartInfo.RedirectStandardOutput = true;
              p.StartInfo.RedirectStandardInput = false;
              p.StartInfo.UseShellExecute = false;
              p.OutputDataReceived += (a, b) =&gt; line = line + b.Data + Environment.NewLine;
              p.ErrorDataReceived += (a, b) =&gt; line = line + b.Data + Environment.NewLine;
              p.Start();
              p.BeginErrorReadLine();
              p.BeginOutputReadLine();
  
              MessageBox.Show(line);
  </code></pre>
  
  <p>MessageBox result Empty, so no error...</p>
  
  <p>Same result =(</p>