2009-01-28 8 views
5

He publicado una pregunta similar sobre cómo hacer esto en JNDI, pero en ESTE post me pregunto cómo hacerlo usando CUALQUIER INTERFAZ.Obteniendo el nombre de un grupo de usuarios en Windows XP - usando cualquier forma posible

Me gustaría poder recuperar el nombre de un grupo de usuarios. Cuando digo "grupo" me refiero al grupo en la computadora. Como "administrador" o "usuario".

¿Puedo hacerlo a través de la línea de comandos, aplicación, dll o interfaz de algún tipo?

¿Alguien sabe cómo se podría hacer esto? ¿Alguien ha hecho esto? ¿Es una tarea fácil?

Respuesta

8

Desde la línea de comandos:

net user <username> 

o si están en un dominio

net user <username> /domain 

Hacia la parte inferior son 2 secciones, la pertenencia a grupos locales y del Grupo Global de Pertenencia.

Nota: un usuario puede tener una gran cantidad de grupos (! En mi caso en el trabajo un total de 8)

+0

Rock on. ¡Un gran consejo! – dpurrington

1

He aquí un ejemplo en VB (debe ser sencillo para convertir a otro idioma):

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 desea descubrir grupos que inició la sesión actual en el usuario es miembro de que se puede utilizar

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

ACTUALIZACIÓN

Si desea obtener todos los grupos disponibles, Creo que tiene que usar las API de Windows. Pero para verificar si el usuario actual está en un grupo específico, puede usar el siguiente código.

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

Si desea comprobar contra incorporado en grupos de Windows se puede utilizar en el método de enumeración WindowsBuiltInRole IsInRole.

+1

Esto solo obtiene los SID (?) De un grupo y no los nombres de grupo. ¿Hay alguna forma de usar esta información para obtener el nombre del grupo? – jbu

Cuestiones relacionadas