Скрипт мониторинга входа-выхода пользователей на компьютере в домене

Скрипт мониторинга входа-выхода пользователей на компьютере в домене

Как то очень давно поставили задачу мониторить одного пользователя в плане «время включения и выключения его машины». Если задачу развивать, то можно и подкрутить визуальный интерфейс для подробных отчетов и графиков). Но пока руки не дошли… Выкладываю, может кому-то пригодится.
Итак требовалось получить
1)Какой пользователь домена зашел или вышел (logon-logoff) на машину?
2)Имя компьютера
3)Точное время входа

Я решил для начала сделать скриптик на VBA, который при запуске записывает в файл информацию о компьютере, имя вошедшего на машину и когда это было

Скрипт

Const MY_COMPUTER = &H11&
Set objNetwork = CreateObject(«Wscript.Network»)
objComputerName = objNetwork.ComputerName
objUserName = objNetwork.UserName
Set objShell = CreateObject(«Shell.Application»)
Set objFolder = objShell.Namespace(MY_COMPUTER)
Set objFolderItem = objFolder.Self
objFolderItem.Name = «*Мой комп*» & vbNewLine &»User: » & vbNewLine & (objUserName) & vbNewLine & «Компьютер: » & vbNewLine & (objComputerName) & vbNewLine & «*»

On Error Resume Next
Const ForWriting = 2
Const ForReading = 1
Const ForAppending = 8
Const TristateFalse = 0
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set GObjArgs = WScript.Arguments
GStrCmd = GObjArgs(0)
Call crypt(GStrCmd)

Sub crypt(msg)
n = Len(msg)
c = 0
Do Until c = n
c = c + 1
t1 = Mid(msg,c,1)
ch = Chr(asc(t1)+n)
output = output & ch
Loop
Set GObjLocalF = fso.OpenTextFile(«\\YOURMAINSERVER\NETLOGON\1231.txt»,ForAppending,True)
GObjLocalF.WriteLine «#################################»
GObjLocalF.WriteLine objFolderItem.Name
GObjLocalF.WriteLine Date & «  » & Time
GObjLocalF.WriteLine «#################################»
GObjLocalF.Close
End Sub

 

Сохраняем его под расширением VBS

Запускаем и видим, что в файл по пути «\\YOURMAINSERVER\NETLOGON\logon.txt» записалась нам нужная инфа.

Круто.

Теперь добавляем скриптик в Групповые политики домена при входе пользователя домена

Груповые политики домена. Добавление скрипта при входе или выходе юзера на машину

При logon будем писать инфу в файл \\YOURMAINSERVER\NETLOGON\logon%date%.txt

При выходе из системы \\YOURMAINSERVER\NETLOGON\logoff%date%.txt

Результат выполнения

#################################
*Мой комп*
User:
adminvestnik
Компьютер:
Admin
*
5/13/2011  6:56:34 PM
#################################

Таким образом задача как я считаю решена, может и не оптимально, но сердито))

В любом случае это использовалось временно, если у кого-то возникнет желание, то можно модифицировать и доработать с визуальным интерфейсом от VBA, писать ежедневные файлы, строить отчеты, но так как у меня мало времени на все, то пока оставлю эту задачу на будущее)