如何访问PSObject中存储的函数中的值?

时间:2019-06-10 17:08:48

标签: c# powershell string-formatting

我创建了一个函数,当我将脚本路径传递给它时,该函数将返回PowerShell属性的列表。我无法访问函数存储它们的对象中的值。基本上,此功能的目的是将广告属性加载到网络网格中。

尝试使用断点来跟踪是否加载了值。基本上,这些值是通过我通过脚本获取的AD组中的属性名称和字符串加载的。我得到6个用户,但是将它们加载到textarea中时,返回值看起来像“对象对象”。放置断点时,我已经添加了这些值的屏幕截图。

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 :(得分:0)

因此,我要做的就是在html中静态定义列标题并使用jQuery函数代码对其进行映射。

    PriorityQueue<Integer> pq= new PriorityQueue<>(); // by default it maintains the ascending order
    for(int k=0;k<myList.size();k++){
        pq.add(myList.get(k));
    }
    while(pq.size()>1){
        int num1 = pq.poll(); // taking out first smallest number
        int num2 = pq.poll(); // taking out second smallest number
        pq.add(num1+num2);
    }
    finalSum = pq.poll(); // final sum

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>