Obtenir les groupes Active Directory non tronqués de l'utilisateur à partir de la ligne de commande

90

J'utilise souvent la net usercommande pour consulter les groupes AD pour un utilisateur:

net user /DOMAIN <username>

Cela fonctionne bien, mais les noms de groupe sont tronqués à environ 20 caractères. Et dans mon organisation, la plupart des noms de groupe sont beaucoup plus longs que cela.

Est-ce que quelqu'un connaît un moyen d'obtenir des groupes AD non tronqués via la ligne de commande?

Ben
la source
1
Sur la base de la date de cette question, je suppose que la troncature de 20 caractères n'est plus une chose car l'exécution de cette commande a renvoyé des groupes avec des noms plus grands. La réponse ci whoami /groups- dessous est également bonne. Mais il ne répertorie que les groupes d'utilisateurs actuellement connectés. L'usurpation d'identité et la programmation astucieuse pourraient cependant contourner cela;)
Richard Barker
2
Je l'ai couru pour un utilisateur sur le domaine de mon organisation; La troncature de 20 caractères est toujours un problème.
SherlockSpreadsheets
Bonne question, Aguado!
Bart

Réponses:

-9

Vous pouvez analyser la sortie de la commande GPRESULT.

sérialiste
la source
67
Sans exemple, c'est une réponse inutile
qujck
8
Mais c'est la bonne réponse inutile ... apparemment.
Warlord 099
Il n'affiche pas les groupes AD. Il montre BEAUCOUP d'autres choses, mais pas les groupes AD.
John Rocha
Les gars, à l'époque (demandé et répondu en 2009), c'était peut-être le seul moyen de faire ce dont le PO avait besoin. Notez qu'il mentionne la troncature après 20 caractères dans le nom du groupe.
Richard Barker
@RichardBarker: La troncature se produit toujours avec NET USER en 2019.
Ross Presser
108

GPRESULTest la bonne commande, mais elle ne peut pas être exécutée sans paramètres. /vou l'option verbeuse est difficile à gérer sans également la sortie dans un fichier texte. EG je recommande d'utiliser

gpresult /user myAccount /v > C:\dev\me.txt- Assurez-vous que C: \ Dev \ me.txt existe

Une autre option consiste à n'afficher que les informations récapitulatives qui peuvent être entièrement visibles dans la fenêtre de commande:

gpresult /user myAccount /r

Les comptes sont répertoriés sous la rubrique:

The user is a part of the following security groups
---------------------------------------------------
P.Brian.Mackey
la source
6
Celui-ci devrait être la réponse
LT
1
Si vous recherchez une chaîne spécifique, vous pouvez utiliser findstrau lieu de rediriger la sortie vers un fichier, puis de rechercher le fichier. Par exemple gpresult /user myAccount /r | findstr mySearchString,.
Jesse
2
Lorsque j'exécute cela pour mon compte utilisateur, c'est génial et je peux voir les groupes de sécurité. Lorsque je l'exécute pour un autre compte utilisateur, la commande renvoie: L'utilisateur "userNameHere" n'a pas de données RSOP.
SherlockSpreadsheets
59

Un petit post périmé, mais j'ai compris ce que diable. "Whoami" répond-il à vos besoins?

Je viens de le découvrir aujourd'hui (à partir de la même recherche Google qui m'a amené ici, en fait). Windows a un outil whoami depuis XP (qui fait partie d'une boîte à outils supplémentaire) et est intégré depuis Vista.

whoami /groups

Répertorie tous les groupes AD de l'utilisateur actuellement connecté. Je pense que cela nécessite que vous soyez connecté en tant que cet utilisateur, cependant, cela n'aidera pas si votre cas d'utilisation nécessite la possibilité d'exécuter la commande pour regarder un autre utilisateur.

Noms de groupe uniquement:

whoami /groups /fo list |findstr /c:"Group Name:"
Doug
la source
J'utilise depuis WhoAmItrès longtemps mon nom d'utilisateur pour me rendre compte AUJOURD'HUI que vous pouvez en faire beaucoup plus! Je vous remercie.
MaYaN
3
lister uniquement les noms de groupe: for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"(note: utiliser à la %%place de %dans le fichier batch)
Lectrode
parfait! N'hésitez pas à proposer de nouvelles réponses aux messages obsolètes!
Bart
5

Ou vous pouvez utiliser dsquery et dsget :

dsquery user domainroot -name <userName> | dsget user -memberof

Pour récupérer les appartenances aux groupes, quelque chose comme ceci:

Tue 09/10/2013 13:17:41.65
C:\
>dsquery user domainroot -name jqpublic | dsget user -memberof
"CN=Technical Support Staff,OU=Acme,OU=Applications,DC=YourCompany,DC=com"
"CN=Technical Support Staff,OU=Contosa,OU=Applications,DC=YourCompany,DC=com"
"CN=Regional Administrators,OU=Workstation,DC=YourCompany,DC=com"

Bien que je ne trouve aucune preuve que j'ai déjà installé ce package sur mon ordinateur, vous devrez peut-être installer les outils d'administration de serveur distant pour Windows 7 .

Dysfonctionnement majeur
la source
1

Manière beaucoup plus simple dans PowerShell:

Get-ADPrincipalGroupMembership <username>

Condition: le compte sous lequel vous utilisez vous-même doit être membre du même domaine que l'utilisateur cible, sauf si vous spécifiez -Credentialet -Server(non testé).

De plus, vous devez avoir installé le module Active Directory Powershell, ce qui, comme @ dave-lucre le dit dans un commentaire à une autre réponse, n'est pas toujours une option.

Pour les noms de groupe uniquement, essayez l'un de ceux-ci:

(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name
Ross Presser
la source
1
Très bonne réponse! Cela fonctionne, mais je ne suis pas trop sûr que cela facilite les choses :). Vous devez analyser le résultat pour obtenir une liste de noms de groupes (je développerais avec ça!). Ce n'est pas un défi pour les techniciens avertis PS, mais le passage du lot DOS au PS n'est jamais facile!
hector-j-rivas le
0

Utiliser Powershell: Windows Powershell avec Active Directory

Astuce rapide - Déterminer l'appartenance au groupe AD à l'aide de Powershell

Blé Mitch
la source
1
Vous ne pouvez pas faire cela sans installer le module Active Directory Powershell (ce qui n'est pas toujours une option)
Dave Lucre
1
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses aux liens uniquement peuvent devenir invalides si la page liée change. - De l'avis
Zulan
@Zulan: vous perdez votre temps sur une réponse vieille de 7 ans! Non seulement cela, mais cela semble également incongru car vous n'avez pas commenté la réponse acceptée de la même manière.
Mitch Wheat
@MitchWheat: Avez-vous remarqué le From Reviewlien à la fin de son commentaire? Il n'a pas commenté la réponse acceptée car il ne l'a pas trouvée en revue.
zondo
J'ai fait. J'aurais pensé qu'un critique vérifierait au moins la réponse acceptée.
Mitch Wheat
0

Basé sur la réponse de P.Brian.Mackey - J'ai essayé d'utiliser la gpresult /user <UserName> /rcommande, mais cela ne semblait fonctionner que pour mon compte d'utilisateur; pour d' autres comptes utilisateurs que je suis arrivé à ce résultat: The user "userNameHere" does not have RSOP data.

J'ai donc lu ce blog - https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html - et suis tombé sur une solution. Vous devez connaître le nom de l'ordinateur des utilisateurs:

gpresult /s <UserComputer> /r /user:<UserName>

Après avoir exécuté la commande, vous devez le faire ENTERplusieurs fois pour que le programme se termine car il s'arrêtera au milieu de la sortie. De plus, les résultats ont donné un tas de données comprenant une section pour " COMPUTER SETTINGS> Applied Group Policy Objects" puis " COMPUTER SETTINGS> Security groups" et enfin " USER SETTINGS> security groups" (c'est ce que nous recherchons avec les groupes AD listés avec des descriptions non tronquées!).

Il est intéressant de noter que GPRESULT avait des membres supplémentaires non visibles dans la commande NET USER. En outre, l'ordre de tri ne correspond pas et n'est pas alphabétique. Tout organisme qui peut ajouter plus d'informations dans les commentaires serait génial.

RÉSULTATS: gpresult (with ComputerName, UserName)

Pour des raisons de sécurité, je n'ai inclus qu'un sous-ensemble des résultats d'adhésion. (36 TOTAL, 12 ÉCHANTILLONS)

The user is a part of the following security groups
---------------------------------------------------
..
 Internet Email 
 GEVStandardPSMViewers  
 GcoFieldServicesEditors    
 AnimalWelfare_Readers  
 Business Objects   
 Zscaler_Standard_Access    
..
 GCM    
..
 GcmSharesEditors   
 GHVStandardPSMViewers  
 IntranetReportsViewers 
 JetDWUsers     -- (NOTE: this one was deleted today, the other "Jet" one was added)
..
 Time and Attendance Users  
..

RÉSULTATS: net user /DOMAIN (with UserName)

Pour des raisons de sécurité, je n'ai inclus qu'un sous-ensemble des résultats d'adhésion. (23 TOTAL, 12 ÉCHANTILLONS)

Local Group Memberships  
Global Group memberships    ...
                             *Internet Email       *GEVStandardPSMViewers
                             *GcoFieldServicesEdito*AnimalWelfare_Readers
                             *Business Objects     *Zscaler_Standard_Acce
                             ...
                             *Time and Attendance U*GCM
                             ...
                             *GcmSharesEditors     *GHVStandardPSMViewers
                             *IntranetReportsViewer*JetPowerUsers
The command completed successfully.
SherlockFeuilles de calcul
la source