Como exportar uma lista detalhada da guia "Membro de" dos usuários do Active Directory?

8

Atualmente, estou no processo de reestruturar a lista de usuários do Active Directory da empresa em que estou trabalhando, e a pessoa que fez isso fez um péssimo trabalho e, é claro, não está mais trabalhando aqui.

Minha pergunta é a seguinte: Desejo ter uma planilha do Excel (idealmente) contendo todas as informações contidas na guia "Membro de" de um gráfico de usuário.

Eu tentei criar uma consulta, mas o resultado só me fornece uma lista de usuários que são "membros de" algo, não o conteúdo real da guia "membro de".

Existe uma maneira de fazer isso, por meio do prompt de comando ou diretamente do Active Directory?

Aviso justo: não sei nada sobre VBS e Powershell.


fonte

Respostas:

7

Se você deseja obter associações ao grupo de um usuário, execute este comando do PowerShell :

Get-ADPrincipalGroupMembership $Username | Select Name | out-file "filepath" onde você deseja que o documento seja salvo, incluindo o nome que você deseja que o documento "

Onde $Usernameestá o nome do usuário que você está consultando.

Josh
fonte
IMO, esta é a ferramenta correta para o trabalho.
blaughw
3

Eu tenho isso, você precisará aprender um pouco do PowerShell para despejar em um CSV, agora ele despeja em um arquivo de texto.

$users = Get-ADUser -Filter * -Properties * -SearchBase "OU=something,DC=domain,DC=net"
foreach ($user in $users) {
    $file = $user.Name + '_ACL'        
    (Get-ADUser –Identity $user –Properties MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1' | Out-File c:\PSResults\$file.txt
    }

Eu nunca tive tempo para fazê-lo funcionar para a saída CSV, pois isso fazia o que eu precisava.

- Se você deseja exportar para um csv, basta alterar o caminho do arquivo de saída para o caminho em que deseja que ele seja salvo, além do nome do document.csv, por exemplo, o arquivo de saída C: \ PSResults \ $ file.csv seria exportado para um CSV chamado $ file

mortenya
fonte
Só vi que Josh R me venceu. O dele também é mais simples.
mortenya
1
No entanto, o seu funcionará em versões inferiores do PowerShell.
Josh
É verdade, eu tive que manter isso em mente quando eu compartilhar roteiros no meu grupo, como eu sou o único com experiência PowerShell, e como tal o único que sempre atualizado passado 2.0
mortenya
Agora que penso nisso, acredito que Get-ADPrincipalGroupMembershipesteja na versão 2.0. Não tenho certeza do que estava pensando.
Josh
Agradecemos a vocês pela resposta. Vou experimentar o de Josh R amanhã, no trabalho, já que ele parece muito mais simples. A menos que eu esteja entendendo errado, terei que gerar esta consulta para cada usuário do meu domínio? Ou, se eu usasse o de Mortenya, ele geraria uma lista completa na primeira vez? Só quero ter certeza de que entendi corretamente! :)
1

Você pode criar e definir uma nova consulta aplicada à UO que contém seus usuários em "Usuários e computadores do AD" inserindo esta sequência de consultas:

(&(&(&(&(objectCategory=user)(userAccountControl=512)))))

exporte os resultados para um csv usando a "Lista de exportação" na parte superior da janela do AD.

user320631
fonte
0

Para obter o arquivo em um CSV, substitua "Out-File c: \ PSResults \ $ file.txt" no seu código por "Export-CSV -caminho c: \ PSResults \ $ file.csv -NoTypeInformation"

Portanto, seria algo como isto:

$users = Get-ADUser -Filter * -Properties * -SearchBase "OU=something,DC=domain,DC=net"
foreach ($user in $users) {
$file = $user.Name + '_ACL'        
(Get-ADUser –Identity $user –Properties MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1' | Export-CSV -path c:\PSResults\$file.csv -NoTypeInformation
}

No entanto, como outros já postaram, o seguinte é o melhor para usar, pois é um liner fácil:

Get-ADPrincipalGroupMembership USERNAME | Select Name | Export-CSV -path C:\Temp\file.csv -NoTypeInformation
Henri Muldre
fonte
isto não vai funcionar no caso se houver grupo guys aninhados .. como um usuário é membro do grupo de 20 que não irá exibir
user420934