Foros del Web » Programación para mayores de 30 ;) » .NET »

Obtener los usuarios que son administradores del equipo

Estas en el tema de Obtener los usuarios que son administradores del equipo en el foro de .NET en Foros del Web. Hola!!! Me gustaría saber la forma de obtener los usuarios que son administradores del equipo, es decir, consultar el grupo "Administradores" local con C#. Sé ...
  #1 (permalink)  
Antiguo 13/03/2008, 11:18
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Obtener los usuarios que son administradores del equipo

Hola!!!

Me gustaría saber la forma de obtener los usuarios que son administradores del equipo, es decir, consultar el grupo "Administradores" local con C#. Sé comprobar si el usuario que ejecuta la aplicación (usuario actualmente logado) es del grupo administradores, pero también me interesaría obtener los nombres de todos los demás usuarios administradores locales, si los hay.

Muchísimas gracias de antemano!!!
  #2 (permalink)  
Antiguo 13/03/2008, 13:43
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Obtener los usuarios que son administradores del equipo

El saber si un usuario es de un grupo en especifico es facil.

WindowsIdentity currentUser= WindowsIdentity.GetCurrent();
WindowsPrincipal principalPolicyForThisUser=new WindowsPrincipal(currentUser);
if(principalPolicyForThisUser.IsInRole("BUILTIN\Ad ministrators"))
{
MessageBox.Show("Es un administrador");
}

para saber cuales son todos los usuarios que son administradores creo q hay q jugar un poco con api.

con esto obtines todos los usuarios de un dominio usando WMI

http://www.geekzone.co.nz/chakkaradeep/3938

puedes mezclar ambos codigos y verificar cuantos y cuales usuarios pertenecen a un grupo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5

Última edición por Peterpay; 13/03/2008 a las 13:59
  #3 (permalink)  
Antiguo 13/03/2008, 14:24
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Re: Obtener los usuarios que son administradores del equipo

HOla!!!
Gracias por responder. Intentaré a ver si lo logro. Creo que con algún método o clase que me devolviera todos los usuarios, administradores o no, de la máquina ya me serviría. ¿Sabes alguno?

Gracias y saludos!!!
  #4 (permalink)  
Antiguo 13/03/2008, 14:25
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Obtener los usuarios que son administradores del equipo

Tal cual no lo vas a encontrar tendras q armarlo pero con lo q te puse basta para que lo hagas

suerte
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 14/03/2008, 05:51
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Obtener los usuarios que son administradores del equipo

Al final he conseguido obtener todos los usuarios de active directory. Ahora sólo necesito el trozo de consulta WMI que me diga los que son administradores locales.

Código:
SelectQuery query = new SelectQuery("SELECT * FROM Win32_UserAccount");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
            foreach (ManagementObject envVar in searcher.Get())
            {
                Console.WriteLine("Username : {0}", envVar["Name"]);
            }
Supongo que alguna consulta del estilo:
Código:
"SELECT * FROM Win32_UserAccount WHERE Win32_Group=Administrador local"
o algo así es lo que necesito.

Gracias y saludos!!
  #6 (permalink)  
Antiguo 27/03/2008, 08:26
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Re: Obtener los usuarios que son administradores del equipo

Al final he conseguido la forma de obtener los usuarios de un determinado grupo, en este caso el de Administradores locales:

Código:
private const string GROUP = "group";
private const string WIN_NT = "WinNT://";
private const string MEMBERS = "members";
        
private void btnGetMembers_Click(object sender, EventArgs e)
{
            DirectoryEntry localMachine = new DirectoryEntry( WIN_NT+
Environment.MachineName);
            DirectoryEntry admGroup = localMachine.Children.Find("Administradores", GROUP);

            object members = admGroup.Invoke(MEMBERS, null);
            foreach (object groupMember in (IEnumerable)members)
            {
                DirectoryEntry member = new DirectoryEntry(groupMember);
                listBox1.Items.Add(member.Name);
            }
}


Salu2!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:12.