Comment exporter une liste détaillée de l'onglet «Membre de» des utilisateurs d'Active Directory?

8

Je suis actuellement en train de restructurer la liste des utilisateurs Active Directory de la société pour laquelle je travaille, et la personne qui l'a fait a fait un travail terrible, et bien sûr, ne travaille plus ici.

Ma question est la suivante: je veux avoir une feuille de calcul Excel (idéalement) contenant toutes les informations contenues dans l'onglet "Membre de" d'un graphique utilisateur.

J'ai essayé de créer une requête, mais le résultat ne me donne qu'une liste d'utilisateurs qui sont un "membre de" quelque chose, pas le contenu réel de l'onglet "membre de".

Existe-t-il un moyen de le faire, soit via l'invite de commande, soit directement depuis Active Directory?

Juste avertissement: je ne sais rien sur VBS et Powershell.


la source

Réponses:

7

Si vous souhaitez obtenir les appartenances au groupe d'un utilisateur, exécutez cette commande PowerShell :

Get-ADPrincipalGroupMembership $Username | Select Name | out-file "filepath" où vous voulez que le document soit enregistré, y compris le nom que vous voulez que le document "

$Usernameest le nom de l'utilisateur que vous interrogez.

Josh
la source
OMI, c'est l'outil correct pour le travail.
blaughw
3

J'ai cela, vous devrez apprendre un peu de PowerShell pour le faire vider dans un CSV, en ce moment il ne fait que vider dans un fichier texte.

$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
    }

Je n'ai jamais pris le temps de le faire fonctionner pour la sortie CSV car cela faisait ce dont j'avais besoin.

- Si vous souhaitez l'exporter vers un fichier csv, remplacez simplement le chemin du fichier de sortie par le chemin où vous souhaitez qu'il soit enregistré, plus le nom du document.csv, par exemple, le fichier sortant C: \ PSResults \ $ file.csv exporterait vers un fichier CSV nommé $

mortenya
la source
Je viens de voir que Josh R m'a battu. Le sien est aussi plus simple.
mortenya
1
Cependant, le vôtre fonctionnera sur les versions inférieures de PowerShell.
Josh
Certes, j'ai dû garder cela à l'esprit lorsque je partage des scripts dans mon groupe, car je suis le seul à avoir une expérience PowerShell, et en tant que tel le seul à avoir mis à niveau après 2.0
mortenya
Maintenant que j'y pense, je crois que Get-ADPrincipalGroupMembershipc'est en 2.0. Je ne sais pas à quoi je pensais.
Josh
Merci à vous deux pour la réponse. J'essaierai celui de Josh R demain au travail, car il semble en fait beaucoup plus simple. À moins que je ne comprenne mal, je devrai générer cette requête pour chaque utilisateur de mon domaine? Ou si je devais utiliser celui de Mortenya, cela générerait une liste complète la première fois? Je veux juste m'assurer de bien comprendre! :)
1

Vous pouvez créer et définir une nouvelle requête appliquée à l'unité d'organisation qui contient vos utilisateurs dans "Utilisateurs et ordinateurs AD" en entrant cette chaîne de requête:

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

puis exportez les résultats vers un fichier csv en utilisant la "Liste d'exportation" en haut de la fenêtre AD.

user320631
la source
0

Pour obtenir le fichier dans un CSV, remplacez simplement "Out-File c: \ PSResults \ $ file.txt" dans votre code par "Export-CSV -path c: \ PSResults \ $ file.csv -NoTypeInformation"

Donc, cela ressemblerait à quelque chose comme ceci:

$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
}

Cependant, comme d'autres l'ont déjà signalé, ce qui suit est le meilleur à utiliser car c'est un simple revêtement:

Get-ADPrincipalGroupMembership USERNAME | Select Name | Export-CSV -path C:\Temp\file.csv -NoTypeInformation
Henri Muldre
la source
cela ne fonctionnera pas dans le cas où il y a des gars de groupe imbriqués .. comme un utilisateur est membre du groupe 20, il ne s'affichera pas
user420934