我需要聚合2 foreach的结果,这样我就可以运行一个很好的报告--这是一个脚本:
$users = Get-ADGroupMember -Identity 'TESTGRoup'
$result1 = ForEach ($user in $users){
New-Object -TypeName psobject -Property @{
User = $user
CN = $User.SamAccountName
Domain = $user.name
Name = $user.SID
}
}
$Result4 = Get-ADGroupMember 'TESTGRoup' |
Where-Object {$_.objectClass -eq 'User'} |
Get-AdUser |
ForEach {
Get-MsolUser -UserPrincipalName $_.UserPrincipalName | Select UserprincipalName, Blockcredential
$result7 = New-Object -TypeName psobject -Property @{
User1 = $Result4.UserPrincipalName
CN1 = $Result4.BlockCredential
}
}最终的结果是,所有用户都是在一行而不是在表上连接起来的。
抱歉,代码格式-不知道如何更好地呈现它。
谢谢
发布于 2018-10-11 17:21:57
如果我正确理解您的问题,下面的代码将生成对象,其中包含每个用户在单个对象上所需的聚合数据:
#requires -Version 3
$results = foreach ($user in Get-ADGroupMember -Identity 'TESTGRoup')
{
$user | ? objectClass -eq User | Get-ADUser | % {
$msol = Get-MsolUser -UserPrincipalName $PSItem.UserPrincipalName
[pscustomobject]@{
'User' = $user
'CN' = $user.SamAccountName
'Domain' = $user.Name
'Name' = $user.SID
'User1' = $msol.UserPrincipalName
'CN1' = $msol.BlockCredential
}
}
}https://stackoverflow.com/questions/52764669
复制相似问题