Как получить доступ к значениям в функции, хранящейся в PSObject? - PullRequest
0 голосов
/ 10 июня 2019

Я создал функцию, которая возвращает список атрибутов PowerShell, когда я передаю в него путь к скрипту. Я не могу получить доступ к значениям в объекте, где функция хранит их. По сути, эта функция предназначена для загрузки атрибутов рекламы внутри веб-сетки.

Попытка использования точки останова для отслеживания загрузки значений или нет. В основном значения загружаются с именами атрибутов и сохраненными в них строками из групп AD, которые я извлекаю через сценарии. Я получаю счет 6 пользователей, но возвращаемые значения выглядят как «Объектный объект», когда я загружаю их в текстовое поле. Я добавил скриншот значений при установке точки останова.

public List<SelectListItem> PowerShellExecutorLst(string scriptPath, string arg)
    {
        string outString = "";
        var shell = PowerShell.Create();
        shell.Commands.AddCommand(scriptPath).AddArgument(arg);
        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;
    }

Мой сценарий:

$GroupName ='Test - Group'
$SamAccountName = Get-ADGroup -Filter { CN -eq $GroupName } -Properties  SamAccountName | Select -ExpandProperty SamAccountName

#Getting Members of the Group - Not Storing Employee Number
Get-ADGroupMember -Identity $SamAccountName | where {$_.objectclass -eq 'user'} | 
Get-ADUser -Properties displayname,  samAccountName, ObjectGUID | 
Select displayname, samAccountName, ObjectGUID

The snapshot of the values with attributes

Примеры значений, хранящихся в моем объекте psObject:

@{displayname=User1; samAccountName=usr1; ObjectGUID=8a3fab53-4c8b-483d-89f0-e26de236a627}
@{displayname=User2; samAccountName=usr2; ObjectGUID=0a3fab53-4c8b-483d-89f0-e26de236a627}
@{displayname=User3; samAccountName=usr3; ObjectGUID=9a3fab53-4c8b-483d-89f0-e26de236a627}

Я просто хочу, чтобы эти значения заполнились внутри webGrid, но не могу понять, что возвращать из функции.

1 Ответ

0 голосов
/ 12 июня 2019

Итак, все, что мне нужно было сделать, это статически определить заголовок столбца в html и сопоставить его с кодом функции jQuery.

<div id="tbl">
<table>
    <thead>
        <tr id="thead">
            <th>displayName</th>
            <th>samAccountName</th>
            <th>ObjectGUID</th>
        </tr>
    </thead>
    <tbody id="tbody">
    </tbody>
</table>

JQuery

 $(function(){

    $.ajax({
        type: "POST",
        url: "/Group/FillMembers",           
        success: function (response) {
            $.each(response.message, function (key, value) {
                var arr = value.split(";")
                var tbody = $("#tbody");
                var tr = $("<tr></tr>")
                $.each(arr, function (i, obj) {
                    var temp = arr[i].trim().split("=")[1];
                    var td = $("<td></td>")
                    td.append(temp);
                    tr.append(td);
                })
                tbody.append(tr);

            });            
        }
    });      
})
...