Exemple #1
0
        /// <summary>	Gets a job. </summary>
        /// <remarks>	Anthony, 5/29/2015. </remarks>
        /// <param name="jobId">	Identifier for the job. </param>
        /// <returns>	The job. </returns>
        public Task <PowershellReturn> GetJob(Guid jobId)
        {
            RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();

            InitialSessionState initialSession = InitialSessionState.Create();

            using (PowerShell powerShellInstance = PowerShell.Create(initialSession))
            {
                powerShellInstance.RunspacePool = RunspacePoolWrapper.Pool;
                if (powerShellInstance.Runspace == null)
                {
                    powerShellInstance.Runspace = RunspaceFactory.CreateRunspace(rsConfig);
                    powerShellInstance.Runspace.Open();
                }

                ICollection <PSJobProxy> jobProxyCollection = PSJobProxy.Create(powerShellInstance.Runspace);

                var proxy = jobProxyCollection.First();

                return(Task.FromResult(
                           new PowershellReturn
                {
                    PowerShellReturnedValidData = true,
                    ActualPowerShellData = proxy.Output.LastOrDefault().ToString()
                }
                           ));
            }
        }
Exemple #2
0
        internal PSChildJobProxy(string command, PSObject o) : base(command)
        {
            string str;

            this._tracer     = PowerShellTraceSourceFactory.GetTraceSource();
            this._syncObject = new object();
            PSJobProxy.TryGetJobPropertyValue <string>(o, "StatusMessage", out this._statusMessage);
            PSJobProxy.TryGetJobPropertyValue <string>(o, "Location", out this._location);
            PSJobProxy.TryGetJobPropertyValue <string>(o, "Name", out str);
            base.Name                = str;
            base.Output.DataAdded   += new EventHandler <DataAddedEventArgs>(this.OutputAdded);
            base.Error.DataAdded    += new EventHandler <DataAddedEventArgs>(this.ErrorAdded);
            base.Warning.DataAdded  += new EventHandler <DataAddedEventArgs>(this.WarningAdded);
            base.Verbose.DataAdded  += new EventHandler <DataAddedEventArgs>(this.VerboseAdded);
            base.Progress.DataAdded += new EventHandler <DataAddedEventArgs>(this.ProgressAdded);
            base.Debug.DataAdded    += new EventHandler <DataAddedEventArgs>(this.DebugAdded);
        }