title: Invoking powershell cmdlets from C#
body: <p>I'm trying to learn how to call PS cmdlets from C#, and have come across the PowerShell class. It works fine for basic use, but now I wanted to execute this PS command:</p>
  
  <pre><code>Get-ChildItem | where {$_.Length -gt 1000000}
  </code></pre>
  
  <p>I tried building this through the powershell class, but I can't seem to do this. This is my code so far:</p>
  
  <pre><code>PowerShell ps = PowerShell.Create();
  ps.AddCommand("Get-ChildItem");
  ps.AddCommand("where-object");
  ps.AddParameter("Length");
  ps.AddParameter("-gt");
  ps.AddParameter("10000");
  
  
  // Call the PowerShell.Invoke() method to run the 
  // commands of the pipeline.
  foreach (PSObject result in ps.Invoke())
  {
      Console.WriteLine(
          "{0,-24}{1}",
          result.Members["Length"].Value,
          result.Members["Name"].Value);
  } // End foreach.
  </code></pre>
  
  <p>I always get an exception when I run this. Is it possible to run the Where-Object cmdlet like this?</p>