Instale os CMDlets da Quest e, em seguida, execute este código:
Add-PSSnapin Quest.ActiveRoles.ADManagement
$memberships = @()
Get-QADGroup -SizeLimit 0 | Foreach-Object {
$NameGroup = $_.Name
Write-Host "Working with $NameGroup"
$membership = Get-QADGroupMember $_.DN -Enabled -SizeLimit 0
if ($membership -ne $null ) {
$membership | Add-Member -type NoteProperty -name AuditGroupUserIsMemberOf -value $_.Name
$memberships += $membership
}
}
$memberships | Select-Object AuditGroupUserIsMemberOf, NTAccountname | Export-Csv "GroupsWithUsers.csv"
Isso fornecerá um registro de 1 por conexão de usuário do grupo, portanto, espere várias ocorrências de usuários e grupos. Se você não quiser outros campos, basta editar a instrução Select-Object
. Use $memberships | gm
para ver todas as possibilidades para os usuários. Se você quiser mais campos para os grupos, use Get-QADGroup | gm
, então você precisará adicioná-los adicionando um novo NoteProperty
.
Se você realmente não se importa com mais opções, aqui está um verso que você pode simplesmente misturar no terminal:
Get-QADGroup -sizeLimit 0 | select @{name="Group";expression={$_.name}} -expand members | select Group,@{n='User';e={ (Get-QADObject $_).NTAccountName}} | Export-Csv "MyUsersAndGroups.csv"