Como listar todos os usuários do Active Directory e seus membros de grupo

2

Gostaria que uma única linha de script exportasse para o CSV todos os usuários do meu AD com todos os grupos dos quais eles são membros.

Eu prefiro que seja feito no powershell, mas o dsquery / dsget é uma boa alternativa na verdade.

EDIT: eu tenho tentado fazer algo assim:

$ user="administrador" (GET-ADUSER -Identity $ user -Properties MemberOf | Selecionar-Objeto MemberOf) .MemberOf

Mas eu gostaria de ter um loop da variável $ user a ser alterado por cada linha no arquivo de texto de referência.

Este é o ponto em que eu não sei como fazer um loop.

    
por user131509 09.08.2012 / 07:24

1 resposta

4

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"
    
por 09.08.2012 / 07:47