Вызов скрипта PowerShell и захват вывода в ASP через C# - PullRequest
0 голосов
/ 14 февраля 2020

Я вызываю сценарий PowerShell с c# на странице ASP. Сценарий выполняется просто отлично, но вывод (write-host) моего PowerShell не фиксируется. Я хотел бы иметь возможность захватить любой вывод обратно на страницу ASP.

Ниже приведен мой текущий код.

    protected void ExecuteInputClick(object sender, EventArgs e)
        {
            Result.Text = string.Empty;

            RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();

            Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
            runspace.Open();

            RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);

            Pipeline pipeline = runspace.CreatePipeline();

            string scriptfile = "C:\\PRJ_Templates\\CreateProject.ps1";

            Command myCommand = new Command(scriptfile);
            CommandParameter DestDirParam = new CommandParameter("DestinationDirectory", DropDownList1.SelectedValue);
            CommandParameter ProjNamParam = new CommandParameter("ProjectName", Input.Text);
            myCommand.Parameters.Add(DestDirParam);
            myCommand.Parameters.Add(ProjNamParam);

            pipeline.Commands.Add(myCommand);

            try
            {
                System.Collections.ObjectModel.Collection<PSObject> results = pipeline.Invoke();
                runspace.Close();
                StringBuilder stringBuilder = new StringBuilder();
                foreach (PSObject obj in results)
                {
                    stringBuilder.AppendLine(obj.ToString());
                }
                Result.Text = Server.HtmlEncode(stringBuilder.ToString());
            }
            catch (ActionPreferenceStopException Error) { Result.Text = Error.Message; }
            catch (RuntimeException Error) { Result.Text = Error.Message; }
        }

Есть мысли, почему write-host не попадает в результаты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...