コード例 #1
0
        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);
            }
        }
コード例 #2
0
 private void _machineManager_ProgressChanged(object sender, RemoteProgressChangedEventArgs e)
 {
     backgroundWorker1.ReportProgress(e.Progress);
 }
コード例 #3
0
        protected virtual void OnProgressChanged(RemoteProgressChangedEventArgs e)
        {
            var handler = ProgressChanged;

            handler?.Invoke(this, e);
        }