private List <PSObject> RunLocalCommand(Runspace runspace, Command arbitraryCommand) { using (var powershell = PowerShell.Create()) { powershell.Runspace = runspace; powershell.Commands.AddCommand(arbitraryCommand); powershell.Streams.Progress.DataAdded += (sender, eventargs) => { var progressRecords = (PSDataCollection <ProgressRecord>)sender; Console.WriteLine(@"Progress is {0} percent complete", progressRecords[eventargs.Index].PercentComplete); var progressArgs = new RemoteProgressChangedEventArgs { Progress = progressRecords[eventargs.Index].PercentComplete }; OnProgressChanged(progressArgs); }; var output = powershell.Invoke(); ThrowOnError(powershell, arbitraryCommand.CommandText, "localhost"); var ret = output.ToList(); return(ret); } }
private void _machineManager_ProgressChanged(object sender, RemoteProgressChangedEventArgs e) { backgroundWorker1.ReportProgress(e.Progress); }
protected virtual void OnProgressChanged(RemoteProgressChangedEventArgs e) { var handler = ProgressChanged; handler?.Invoke(this, e); }