В моем файле контроллера есть функция, которая загружает детали групп AD с помощью библиотеки System.Management.Automation.Создание экземпляра PowerShell и выполнение сценария.Я выбираю 2 атрибута групп, имя и идентификатор GUID, я хочу указать имя в поле «Текст» раскрывающегося списка, а идентификатор GUID - в поле «Значение».Вот мой код в C #:
public ActionResult GroupReview()
{
ViewBag.Groups = PowerShellExecutorLst(AppDomain.CurrentDomain.BaseDirectory + "Shell\\Get-ADStewardGroups.ps1");
}
public List<SelectListItem> PowerShellExecutorLst(string scriptPath)
{
var shell = PowerShell.Create();
var listItemStr = new List<String>();
shell.Commands.AddCommand(scriptPath);
var results = shell.Invoke();
if (results.Any())
{
foreach(var psObj in results)
{
listItemStr.Add(Server.HtmlEncode(psObj.ToString().Trim('@', '{', '}')));
};
}
List<SelectListItem> listItems = listItemStr.Select(s => new SelectListItem { Value = s, Text=s }).ToList();
shell.Dispose();
return listItems;
}
Вот мой HTML-код для заполнения DropDownList:
<div class="col-md-12" style="width:auto">
@Html.DropDownList("ddlGroup", (IEnumerable<SelectListItem>)@ViewBag.Groups, "Select Group", new { @class = "form-control" })
</div>
Вот скрипт PowerShell, который я передаю
Get-ADGroup -Properties Name, ObjectGUID | Select Name, ObjectGUID
IЯ могу получить данные по мере необходимости, просто пытаясь раздвоить имя и идентификатор GUID в поле «Текст и значение» DropDownList соответственно.