Передача сценария оболочки через функцию - PullRequest
0 голосов
/ 30 мая 2019

Я создаю приложение для управления группами объявлений через MVC с помощью Power Shell Script Interaction. Я создал функцию, которая будет возвращать значения для заполнения бритвенных компонентов HTML. Однако, когда я передаю сценарии оболочки из базовой директории, компонент не заполняется значением.

Я попытался установить путь к сценарию с помощью AppDomain.CurrentDomain.BaseDirectory, ошибки не генерируются, и я не получаю никаких выходных данных.

** Код бритвы **

@functions {

    public string PowerShellExecutor(string script) {
        var shell = PowerShell.Create();
        string outString = "";
        shell.Commands.AddScript(script);
        var results = shell.Invoke();
        if (results.Count>0)
        {
            var builder = new StringBuilder();
            foreach (var psObj in results)
            {
                builder.Append(psObj.BaseObject.ToString() + "\r\n");

            }
            outString = Server.HtmlEncode(builder.ToString());
        }
        return outString;
    }


<div class="row">
    <div class="col-md-12">
        @Html.TextBox("txtDir", @PowerShellExecutor(AppDomain.CurrentDomain.BaseDirectory.ToString()+ "Shell\\Get-StewardName.ps1"), new { @class = "form-control" })
            @*@Html.TextBox("txtDirectory", @PowerShellExecutor("$env:USERDNSDOMAIN") , new { @class = "form-control"})*@
     </div>
 </div>

** Сценарий Powershell **

    $StewardName = Get-ADUser $env:USERNAME -Properties DisplayName | Select -ExpandProperty DisplayName
    $EmployeeNumber = Get-ADUser $env:UserName -Properties EmployeeNumber| Select -ExpandProperty EmployeeNumber
    Write-Output "Steward: $StewardName ($EmployeeNumber)"

Когда я набираю переменные окружения, я получаю домен, членом которого я являюсь. Когда я передаю скрипт, он должен получить какое-то значение.

1 Ответ

0 голосов
/ 31 мая 2019

Хорошо, поэтому замена AddScript () на AddCommand () выполняет сценарий, однако при использовании переменных среды для извлечения данных, которые он выдает, команда not found исключение.

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