LOGON

11/09/2006 - 18:22 por LOLO | Informe spam
Hola,

actualmente tengo 4 DC en mi dominio y me gustaria sasber cuantos usuarios
se logan en cada uno de ellos. ¿como puedo hacer esto?

Gracias
LOLO

Preguntas similare

Leer las respuestas

#1 LOLO
12/09/2006 - 21:37 | Informe spam
muchas gracias Fernando...

"Fernando Reyes [MS MVP]" escribió:

Auditando el inicio de sesión de cuenta y mirando en el visor de sucesos de seguridad de cada DC:

Auditaar inicio de sesión
http://freyes.svetlian.com/tips/aud...sesion.htm

Otra opción, si no se quiere usar políticas de auditoría (tienen el inconveniente de que son un poco confusas y/o engorrosas a la hora de leer los resultados), sería que asignaras un script de logon que escribiera en una ruta de red el nombre de usuario, máquina y servidor de inicio de sesión sobre un fichero; obviamente, en esa carpeta deberán tener permiso de escritura todos los usuarios de dominio, por lo que debería tener una compartición oculta. Por ejemplo, un script BAT podría ser así:

echo Fecha:>a.txt
DATE /T:>>a.txt
echo Hora:>>a.txt
TIME /T>>a.txt
echo Equipo:>>a.txt
echo %COMPUTERNAME%>>a.txt
echo Usuario:>>a.txt
echo %USERNAME%>>a.txt
echo Servidor de Inicio de Sesión:>>a.txt
echo %LOGONSERVER%>>a.txt

El enfoque que a mí me parece más útil es usar como script de inicio de sesión un script VBScript, que genere un fichero CSV que luego será fácilmente leible desde Excel:

'Este script, usado en el logon del usuario, permite recoger en un
'fichero csv en qué máquina se está logando.

'© Marzo de 2006 Fernando Reyes [MS MVP]

'Declaración de constantes para su uso con el objeto NameTranslate
const ADS_NAME_TYPE_NT4 = 3
const ADS_NAME_TYPE_1779 = 1
const ADS_NAME_INITTYPE_DOMAIN = 1

Dim str_ADs_Path 'Ruta ADSI del usuario logado
Dim str_LdapDN 'Ruta LDAP del usuario
Dim str_Ejecutar 'Se ejecutará con obj_Shell.Run
Dim obj_Usuario 'Cuenta del usuario logado
Dim obj_Net 'Objeto Network
Dim obj_Trans 'Será un objeto NameTranslate
Dim obj_Usuario_LDAP 'Será un objeto usuario LDAP
Dim obj_Shell 'Ejecutará instrucciones Shell


'Creamos un objeto Network
Set obj_Net = CreateObject("Wscript.Network")

'Obtenemos la ruta ADSI del usuario logado
str_ADs_Path = obj_Net.UserDomain & "/" & obj_Net.UserName

'Abrimos un objeto con la cuenta de usuario
Set obj_Usuario = GetObject("WinNT://" & str_ADs_Path & ",user")

'Creamos un objeto NameTranslate, que nos servirá para obtener la ruta
'LDAP del usuario a partir del nombre del objeto usuarioWinNT
set obj_Trans = CreateObject("NameTranslate")
obj_Trans.Init ADS_NAME_INITTYPE_DOMAIN, "talonotel"
obj_Trans.Set ADS_NAME_TYPE_NT4, "talonotel\" & obj_Usuario.Name
str_LdapDN = obj_Trans.Get( ADS_NAME_INITTYPE_DOMAIN)

Set obj_Usuario_LDAP = GetObject("LDAP://" & str_LdapDN)



WScript.Echo obj_Usuario_LDAP.distinguishedName

str_Ejecutar = "cmd /c echo """ & obj_Usuario_LDAP.distinguishedName & """,""" & _
"%computername%"",""" & f_Fabricante & _
""">>\\servidor\carpeta$\estaciones-usuarios.csv"

'Creamos un objeto Shell que usaremos para ejecutar la instrucción
Set obj_Shell = WScript.CreateObject("WScript.Shell")

'Ejecutamos la sentencia
obj_Shell.Run str_Ejecutar, 0, True

'Destruimos los objetos
Set obj_Usuario = Nothing
set obj_Trans = Nothing
Set obj_Shell = Nothing
Set obj_Net = Nothing



Function f_Fabricante()


Set obj_Shell = WScript.CreateObject("WScript.Shell")

str_Computer = obj_Shell.ExpandEnvironmentStrings("%COMPUTERNAME%")

Set obj_WMIService = GetObject("winmgmts:\\" & str_Computer & "oot\CIMV2")
Set col_Items = obj_WMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each obj_Item In col_Items

str_Devolucion = """" & obj_Item.Manufacturer & """,""" & obj_Item.Model & """"

Next

f_Fabricante = str_Devolucion

Set obj_Shell = Nothing
Set obj_WMIService = Nothing
Set col_Items = Nothing
Set obj_Item = Nothing

End Function

Este script debería ser lanzado desde un bat que contuviera lo siguiente y que estuviese en la misma carpeta que el script VBScript:

cscript %0\..\usuario-estacion.vbs

El script yo lo utilicé más como una forma de inventario que como control de logon. Se debería retocar quitando la información que no se desee, como el fabricante del equipo, y quizás te interesaría que se generara un fichero CSV distinto cada día.

Un saludo
Fernando Reyes [MS MVP]
MCSE Windows 2000 / 2003
MCSA Windows Server 2003
http://freyes.svetlian.com
http://www.bloglines.com/blog/urpiano
freyes.polí
(No tengas intereses económicos ocultos si quieres escribirme)



Y fue LOLO () quien en el mensaje , planeando sobre su teclado, hizo un picado y tecleó:

> Hola,
>
> actualmente tengo 4 DC en mi dominio y me gustaria sasber cuantos
> usuarios se logan en cada uno de ellos. ¿como puedo hacer esto?
>
> Gracias
> LOLO
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida