Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Powershell-将结果格式化为表/数组_Arrays_Variables_Powershell - Fatal编程技术网

Arrays Powershell-将结果格式化为表/数组

Arrays Powershell-将结果格式化为表/数组,arrays,variables,powershell,Arrays,Variables,Powershell,我有下面的脚本拉正确的信息,但需要帮助格式化它。我要找的是一个表,该表在a列中列出了组名,在B列中列出了用户名。现在的输出在a列中列出了组名,但将用户名全部放在B列的一行中 结果是: Col A Col B Group1 {User 1, User 2, User 3} 这就是我想看到的: Col A Col B Group 1 User 1 User 2 User 3 这是我到目前为止的剧本 Get-QA

我有下面的脚本拉正确的信息,但需要帮助格式化它。我要找的是一个表,该表在a列中列出了组名,在B列中列出了用户名。现在的输出在a列中列出了组名,但将用户名全部放在B列的一行中

结果是:

Col A      Col B

Group1     {User 1, User 2, User 3}
这就是我想看到的:

Col A      Col B

Group 1    User 1

           User 2

           User 3
这是我到目前为止的剧本

Get-QADGroup -Name '*Group Name*' | ForEach-Object {

$group = $_
$member = $group | Get-QADGroupMember -IncludedProperties samaccountname -UseDefaultExcludedProperties $true -SizeLimit 0

New-Object -TypeName PSObject -Property @{
    Name = $group.Name
    EID = $member
    }
}

不是您要求的格式,但将按组对成员进行分组: (更新为包含SamAccountName)

如果您真的需要完全符合要求的格式,一种方法是订购,然后跟踪上一组值,如果相同,则将其标记为空,如:

Get-QADGroup -Name '*Application*' | `
% { $group = $_.Name; $_; } | ` 
Get-QADGroupMember | `
Select-Object @{n='Group';e={$group}}, @{n='Member';e={$_.Name}} | `
Sort-Object Group | `
ForEach-Object {

$currentGroup = $_.Group

if ($currentGroup -eq $previousGroup)
{
 $_.Group = [string]::Empty
}

$previousGroup = $currentGroup
Write-Output $_
} | Format-Table

我不认为还有别的办法。{User 1,User 2,User 3}是正常的格式化输出。每一行都是一个新条目,对于group1,只有一个条目。这就是为什么它都在一条线上的原因,最上面的一条工作得很漂亮。还有一个问题。我需要sAMAccount名称与实际用户名一起出现在列表中。我怎么能把这个字段加进去?我想出来了。将最后一小段格式化为“@{n='EID';e={$\u.sAMAccountName}}|排序对象组|格式化表EID,成员-分组”。感谢您的帮助。更新了第一个示例以包括SamAccountName。
Get-QADGroup -Name '*Application*' | `
% { $group = $_.Name; $_; } | ` 
Get-QADGroupMember | `
Select-Object @{n='Group';e={$group}}, @{n='Member';e={$_.Name}} | `
Sort-Object Group | `
ForEach-Object {

$currentGroup = $_.Group

if ($currentGroup -eq $previousGroup)
{
 $_.Group = [string]::Empty
}

$previousGroup = $currentGroup
Write-Output $_
} | Format-Table