Я пытаюсь узнать, как вызывать командлеты PS из С#, и наткнулся на класс PowerShell. Он отлично работает для базового использования, но теперь я хотел выполнить эту команду PS:
Get-ChildItem | where {$_.Length -gt 1000000}
Я попытался построить это через класс powershell, но я не могу этого сделать. Это мой код:
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.
Я всегда получаю исключение, когда я запускаю это. Возможно ли запустить командлет Where-Object следующим образом?