obtener todos los usuarios de un equipo

06/03/2007 - 02:14 por Ivan | Informe spam
hola a todos,

¿como podría obtener (vía código) la lista de 'todos' los usuarios de un
equipo, aunque no estén activos en ese momento?

como siempre, si podéis ayudarme os lo agradezco

un saludo y hasta pronto
Ivan

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
06/03/2007 - 06:45 | Informe spam
hola, Ivan !

como podría obtener (vía código) la lista de 'todos' los usuarios de un equipo, aunque no estén activos en ese momento?



agrega a lo apuntado por Francisco lo siguiente:

1) los nombres de las carpetas no tienen por que coincidir [obligadamente] con los nombres de usuarios al iniciar windows :))

2) si listas los directorios [visibles] p.e. desde una sesion de D.O.S. obtendrias algo +/- como lo siguiente:
C:\Documents and Settings>dir *.
Directorio de C:\Documents and Settings
02/03/04 11:54 p.m. <DIR> .
02/03/04 11:54 p.m. <DIR> ..
02/03/04 11:54 p.m. <DIR> Administrator
02/03/04 11:54 p.m. <DIR> All Users
02/13/04 09:28 p.m. <DIR> <current_username>

3) si le incluyes un modificador a la linea de comando para que considere TODO [sub]directorio, la cosa podria cambiar +/- a:
C:\Documents and Settings>dir /ad
Directorio de C:\Documents and Settings
02/03/04 11:54 p.m. <DIR> .
02/03/04 11:54 p.m. <DIR> ..
02/03/04 11:54 p.m. <DIR> Administrator
02/03/04 11:54 p.m. <DIR> All Users
04/16/04 03:58 p.m. <DIR> Default User
02/13/04 09:28 p.m. <DIR> <current_username>
04/17/04 03:09 a.m. <DIR> LocalService
04/17/04 03:09 a.m. <DIR> NetworkService

4) [en mi caso] el inicio de sesion de windows SOLO muestra como opciones al '<current_username>' :))
[sin embargo]... en el panel de control de windows / cuentas de usuario puedo 'ver' que existen los siguientes:
a) el '<current_username>' cambia a: un nombre 'personalizado' [el mio] :))
b) existe otra cuenta de usuario [que no se muestra al inicio] con el nombre de: 'invitado' :))
c) existe otra cuenta de usuario [tampoco se muestra al inicio] con el nombre de: 'ASP.NET Machine A...'

[parece que] necesitaras distinguir de que 'tipo' de usuarios necesitas la informacion :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Ivan
06/03/2007 - 17:09 | Informe spam
hola Francisco y Hector, lo primero muchas gracias a ambos

os respondo conjuntamente para no embarullar el hilo.

ejecutando el codigo de Francisco, efectivamente el resultado es el
expuesto por Hector (+o-) en el punto 3, con la excepcion del
'current_username', pero claro, no lo he ejecutado en Dos (no me
atrevo, con lo manazas que soy lo mismo monto un desaguisado)

este es el resultado:->

Default User
All Users
NetworkService
LocalService
Ivan

lo que en realidad busco es el nombre con el que estan registrados los
posibles usuarios 'reales', o sea de carne y hueso (pej. en mi caso
soy el unico pues seria 'Ivan'), y asi poder distinguirlos de un
posible invitado/infiltrado, de cara a registrarlos en los permisos de
acceso a la aplicacion.

ya se (o creo saber) que esto es tan sencillo como pedir el nombre del/
los usuarios permitidos en la aplicacion mediante un formulario de
registro (o algo asi) y luego cotejarlo con el username cada vez que
se ejecute el archivo

aunque seguramente sea algo innecesario y otro de mis enrevesados
vericuetos para realizar algo posiblemente muy sencillo, habia pensado
que si habia una manera sencilla de obtener los nombres se le podrian
presentar al usuario original en un listbox(pej) para que este
decidiera a cuales permite el acceso y el nivel de este permiso
(accesibilidad)

pero no parece tan sencillo. En cualquier caso es algo bastante
accesorio y solucionable por otras vias, pero por probar que no quede

muchas gracias de nuevo a los dos y un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#3 Francisco Parrilla
06/03/2007 - 21:09 | Informe spam
Hola ... :)
una opcion seria un script que te permita saber los usuarios activos en el
sistema en ese momento .. :)

En vbscript me parecio ver uno, mas tarde lo publico en caso de encontrarlo
:)

Saludos


Atte.
?T Francisco T?
http://groups.msn.com/ExcelVbaMacrosOffice

El verdadero buscador crece y aprende, y descubre que siempre es el
principal responsable de lo que sucede.
Jorge Bucay

La oscuridad nos envuelve a todos, pero mientras el sabio tropieza en alguna
pared, el ignorante permanece tranquilo en el centro de la estancia.
Anatole France
Respuesta Responder a este mensaje
#4 Ivan
06/03/2007 - 22:21 | Informe spam
hola Francisco, muchas gracias de nuevo

una opción seria un script que te permita saber los usuarios activos en el
sistema en ese momento .. :)
En vbscript me parecio ver uno, mas tarde lo publico en caso de
encontrarlo



si lo encuentras, de nuevo te lo agradeceré, aunque he de reconocer que mi
conocimiento sobre 'scripts' es mas bien bajo, por no decir nulo (salvo que
este ante otro de mis tropezones con la terminología en lo que al termino
script se refiere). En cualquier caso (casi) nunca es tarde si la dicha es
buena. A lo mejor no esta de mas empezar a indagar sobre ellos con esta
excusa.

por otro lado, y sobre mi ultimo mensaje, por un lado una rectificación:

donde ponía -> " , con la excepción del 'current_username', " mas bien
supongo que debería haber puesto 'con la excepción del administrador', lo
que por otro lado ¿ quizás se deba a que al ser la misma persona (el
administrador y el usuario en curso <es decir, yo>) el sistema le asigna una
sola carpeta?

por otro lado, tras correr unas cuantas pruebas con el código, añadiendo y
quitando usuarios, activando el invitado, añadiendo una nueva carpeta a
'Documents and settings', +o-, había pensado que, de no ser por esta
posibilidad ultima de añadir carpetas libremente a la ubicación, y dado que
parece que las carpetas en dicha ubicación son +o- estándar para todos los
equipos (o mejor dicho, si es que lo fueran), variando solo al
agregar/eliminar/des/activar usuarios, hubiera podido elaborar una lista de
discriminación de dichas carpetas y haber tomado el resto como usuarios (una
vez creados si los captura con tu código, aunque no estén activos), pero
evidentemente el solo hecho de poder añadir libremente carpetas a la
ubicación echa por tierra esta posibilidad.

bueno, en cualquier caso, como os comentaba, se trata sobre todo de uno de
mis 'enmelonamientos', el cual, por otro lado, esta volviendo a resultar
bastante productivo, aunque no consiguiera el objetivo inicial.

gracias otra vez y un saludo y hasta pronto
Ivan

PD: si encuentras el script, y por casualidad tiene cerca algún 'hermano'
que detecte también los usuarios inactivos, creo que cerraríamos
completamente el circulo
Respuesta Responder a este mensaje
#5 Ivan
06/03/2007 - 23:43 | Informe spam
hola de nuevo,

he encontrado este código, cortesía de Ruben Vignon en el foro de VB, que, a
falta de mas pruebas, parece realizar el trabajo, aunque no acabo de
comprender del todo su funcionamiento: ->

Sub pruebaUsuariosRVignon()
Dim objWMI As Object, objUsuario As Object
Set objWMI = GetObject("winmgmts:\\.oot\cimv2")
For Each objUsuario In objWMI.ExecQuery("SELECT * FROM Win32_UserAccount")
If objUsuario.LocalAccount And Not objUsuario.Disabled Then
Debug.Print "Nombre: " & objUsuario.Name
Debug.Print "Nombre completo: " & objUsuario.FullName
Debug.Print "Descripción: " & objUsuario.Description
End If
Next objUsuario
Set objUsuario = Nothing
Set objWMI = Nothing
End Sub

este es el vinculo a la conversación, desde la que también se puede
descargar una interesante aplicación (por cierto, creo que ya tengo dos
deudas postalware con Ruben)

http://tinyurl.com/2mgq8e

por si alguien le fuera de utilidad

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida