【问题标题】:How to fill multiple values returned from powershell script into HTML dropdownlist?如何将从 powershell 脚本返回的多个值填充到 HTML 下拉列表中?
【发布时间】:2019-05-31 16:24:40
【问题描述】:

我正在通过我的 powershell 脚本获取森林中的域列表,我想将这些值填充到下拉列表中。根据所选域,我想在另一个下拉列表中加载 AD 组。我已经准备好脚本,但不知道如何填写下拉列表。

我正在使用 System.Automation.Management 库来管理 powershell 脚本。这是我的函数和脚本。

private string PowerShellExecutor(string script) {
    string outString = "";
    var shell = PowerShell.Create();
    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="col-md-12">
            @Html.DropDownList("ddlDirectory", new SelectList(PowerShellExecutor(AppDomain.CurrentDomain.BaseDirectory + "Shell\\Get\\ADDomain.ps1")), "Select Domain", new { @class = "form-control"})
</div>

我的脚本有这个代码:Get-ADForest |选择 -ExpandProperty 域 它返回域列表。

下拉菜单需要填写值: 域1 域2 ..

【问题讨论】:

  • 这应该给我 MVC 吗?
  • 您可能需要在换行符处拆分 AD 查询的结果。

标签: html powershell active-directory html.dropdownlistfor


【解决方案1】:

正在运行的更新功能:

public List<SelectListItem> PowerShellExecutorLst(string scriptPath)
    {
        string outString = "";
        var shell = PowerShell.Create();
        shell.Commands.AddCommand(scriptPath);
        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());
        }
        List<string> result = outString.Split(new char[] { '\n' }).ToList();
        List<SelectListItem> listItems = result.Select(s => new SelectListItem { Value = s, Text=s }).ToList();
        shell.Dispose();
        return listItems;
    }

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 1970-01-01
    • 2017-10-19
    • 2019-07-23
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多