title: Execute Powershell script in C# without UserName and Password
body: <p>How I will execute the Powershell script in C# without use of UserName and Password?</p>
  
  <p>Powershell Script:</p>
  
  <pre><code>#Script:This Script generate the Package (Zip file) dynamically for unittest 
  #DirectoryName is Out Directory of Unittest execution
  #location  is Out\Resource Directory
  #locationdetail is Array of files Directory for generate the Package
  #FileName is name of Package generated through this script
  #option is use for switch case implementation,currently not implemented 
  
   param(   
          [string]$DirectoryName="."
      ,   [string]$location=""
      ,   [string]$FileName="Test.zip"
      ,   [int] $option
  )
  
   [System.Reflection.Assembly]::LoadFrom($DirectoryName+"\\"+"Ionic.Zip.dll");
    $locationdetail =  "Package\\Resource", "Package\\ResourceBad", "Package\\ResourceEmptymetada","Package\\ResourceEmptydatafile","Package\\EmptyTest"
    $directoryToZip=""
  
    foreach ($element in $locationdetail) 
    {
      If($element -eq "Package\\Resource")
      {
          $directoryToZip= $location+"\\"+"Package\\Resource"
          $FileName ="Package (Good Data).zip"        
      }
      If($element -eq "Package\\ResourceBad")
      {
          $directoryToZip= $location+"\\"+"Package\\ResourceBad"
          $FileName ="Package (Bad Data).zip"     
      }
      If($element -eq "Package\\ResourceEmptymetada")
      {
          $directoryToZip= $location+"\\"+"Package\\ResourceEmptymetada"
          $FileName ="Package (Bad with ManifestEmpty).zip"               
      }
      If($element -eq "Package\\ResourceEmptydatafile")
      {
          $directoryToZip= $location+"\\"+"Package\\ResourceEmptydatafile"
          $FileName ="Package (Bad with Datafile Empty).zip"      
      }
      If($element -eq "Package\\EmptyTest")
      {
          $directoryToZip= $location+"\\"+"Package\\EmptyTest"
          $FileName ="EmptyTest.zip"      
      }
      $zipfile =  new-object Ionic.Zip.ZipFile
      $e= $zipfile.AddDirectory($directoryToZip)
      $zipfile.Save( $location+"\\"+$FileName)
      $zipfile.Dispose()
      $directoryToZip=""
    }
  </code></pre>
  
  <p>and My C# code</p>
  
  <pre><code>private static void StartPowerShell(string args,string TempScript)
      {
  
          string powerShellPath ="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe";
          string commandLine = @" -Sta -Command ""&amp; {{ try {{ {0} }} catch {{throw}} }} """.InvariantCultureFormat(args);
  
          var info = new ProcessStartInfo();
          info.FileName = powerShellPath;
          info.Arguments = commandLine;
          info.WorkingDirectory = Environment.CurrentDirectory;
          info.UseShellExecute = false;
          info.CreateNoWindow = false;
          info.RedirectStandardError = true;
          info.RedirectStandardOutput = true;
  
          //Pass the Username and Password here in  ProcessStartInfo
          info.UserName = "Saroop";
          string pw = "saroop";
          System.Security.SecureString password = new System.Security.SecureString();
          foreach (var item in pw)
          {
              password.AppendChar(item);
          }
          info.Password = password;
          info.RedirectStandardError = true;
          info.RedirectStandardOutput = true;
          Process p = new Process();
          p.StartInfo = info;
          bool flag = p.Start();
          string error = p.StandardError.ReadToEnd();
  
          p.WaitForExit();
      }
  </code></pre>
  
  <p>Please guide me anyone. I try to use runas command to start my Powershell.exe as a User(Administrator) but it's also ask for Username and Password.
  I try for System.Management.Automation. dll but it's no more existed in .Net4.0
  Reference link :
  <strong>http://msdn.microsoft.com/en-us/library/system.management.automation(v=vs.85).aspx</strong></p>
  
  <p>Please help me.</p>