2009-01-28 12 views
5

J'ai posté une question similaire sur la façon de faire cela dans JNDI, mais dans ce post, je me demande comment le faire en utilisant n'importe quelle interface.Obtenir le nom d'un groupe d'utilisateurs sous Windows XP - de toutes les manières possibles

J'aimerais pouvoir récupérer le nom d'un groupe d'utilisateurs. Quand je dis "groupe", je veux dire le groupe sur l'ordinateur. Comme "administrateur" ou "utilisateur". Est-ce que je peux le faire par la ligne de commande, l'application, le dll, ou l'interface de quelque sorte?

Est-ce que quelqu'un sait comment cela pourrait être fait? Est-ce que quelqu'un a fait ça? Est-ce une tâche facile?

Répondre

8

Depuis la ligne de commande:

net user <username> 

ou si elles sont sur un domaine

net user <username> /domain 

Vers le bas 2 sections, groupes locaux et Adhésions Membre du groupe mondial.

Remarque: un utilisateur peut avoir beaucoup de groupes (! Dans mon cas au travail un total de 8)

+0

Rock activé. Bon conseil! – dpurrington

1

Voici un exemple en VB (devrait être simple de se convertir à une autre langue):

Dim User as IADsUser 
Dim Group as IADsGroup 
Dim UserDomain as String 
Dim UserName as String 

UserDomain = "Target_User_Domain" 
UserName = "Target_User_Name" 
Set User = GetObject("WinNT://" & UserDomain & "/" & UserName & ",user") 

For Each Group in User.Groups 
    Debug.Print Group.NameNext 
0

Si vous voulez savoir les groupes que l'utilisateur connecté actuel utilisateur est membre, vous pouvez utiliser

System.Security.Principal.WindowsIdentity.GetCurrent().Groups 

MISE à JOUR

Si vous voulez obtenir tous les groupes disponibles, Je pense que vous devez utiliser des API Windows. Mais afin de vérifier si l'utilisateur actuel est dans un groupe spécifique, vous pouvez utiliser le code suivant.

WindowsIdentity currentUser = WindowsIdentity.GetCurrent(); 
WindowsPrincipal principal = new WindowsPrincipal(currentUser); 
bool isInGroup = principal.IsInRole("{Group Name}"); 

Si vous voulez vérifier contre intégré des groupes de Windows, vous pouvez utiliser WindowsBuiltInRole ENUM dans la méthode IsInRole.

+1

Ceci obtient seulement les SID (?) D'un groupe et pas les noms de groupe. Est-il possible d'utiliser cette information pour obtenir le nom du groupe? – jbu

Questions connexes