Invocando los cmdlets de powershell desde C #

Estoy tratando de aprender cómo llamar a los cmdlets PS desde C #, y he llegado a la clase de PowerShell. Funciona bien para uso básico, pero ahora quería ejecutar este comando PS:

Get-ChildItem | where {$_.Length -gt 1000000}

Intenté construir esto a través de la clase de PowerShell, pero parece que no puedo hacer esto. Este es mi código hasta ahora:

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.

Siempre tengo una excepción cuando ejecuto esto. ¿Es posible ejecutar el cmdlet Where-Object de esta manera?

Respuestas a la pregunta(1)

Su respuesta a la pregunta