Я создаю приложение для управления группами объявлений через 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)"
Когда я набираю переменные окружения, я получаю домен, членом которого я являюсь. Когда я передаю скрипт, он должен получить какое-то значение.