我在下面的脚本中提取正确的信息,但需要协助格式化它。我要找的是一个表,列出了A列中的组名和B列中的用户名。输出现在列出了A列中的组名,但是将用户名全部放在B列的一行中。 / p>
这就是出现的结果:
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
}
}
答案 0 :(得分:1)
不是您要求的格式,而是按组对成员进行分组: (已更新以包含SamAccountName )
Get-QADGroup -Name '*Application*' | `
% { $group = $_.Name; $_; } | `
Get-QADGroupMember | `
Select-Object @{n='Group';e={$group}}, Name, SamAccountName | `
Sort-Object Group | `
Format-Table Name, SamAccountName -GroupBy Group
如果你真的需要完全按照要求的格式,你可以得到它的一种方法是订购,然后跟踪前一个组值,如果它是相同的,将其标记为空,如:
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