web-dev-qa-db-fra.com

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

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.

8
Alex

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 "

$Username est le nom de l'utilisateur que vous interrogez.

7
Josh

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 de sortie C:\PSResults\$ file.csv exporterait vers un fichier CSV nommé $

3
mortenya

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.

1
user320631

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
0
Henri Muldre