PDA

Показать полную графическую версию : [решено] login\logoff запись времени при помощи батника


xvoct
16-04-2010, 14:32
итак, требуется записывать в лог время входа пользователя в систему и время выхода (затем подсчитать время работы, но это реализуется макросом в экселе).
написал батник для установки по сети:
@echo off

:list
if exist ok_list.log (
set /p dellst="Overwrite ok_list? (Y/N):"
) else goto png

if %dellst%==y del /f /q ok_list.log && goto png
if %dellst%==n (
echo "ok_list.log not created"
goto end
) else (
echo error && goto list
)

:png
echo. >>errorlog.log
echo - %date% %time% - >>errorlog.log
for /f %%i in (regadd.txt) do (
ping %%i -n 1
if errorlevel==1 (
echo %%i not available >>errorlog.log
) else (
echo %%i ok >>ok_list.log
)
)
echo -------------------------- >>errorlog.log
echo.
goto addreg

:addreg
set /p addreg="Add to startup on available computers?(Y/N):"
if %addreg%==y goto add
if %addred%==n (
goto end
) else (
echo error && goto addreg
)

:add
for /f %%k in (ok_list.log) do reg add "\\%%k\HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v login_log /t REG_EXPAND_SZ /d \\vkoho\soft\login\login.bat /f
pause >nul

:end
exit


- берет из списка имена машин
- пингует
- те, что пингуются в один лог, те что не пингуются - в другой
- берет список тех, что пингуются и закидывает в стартап следующий батник:

@echo off
set t=%time:~0,-3%
echo %computername% %username% %date% %t% >>\\vkoho\soft\login\log\%username%.xls
exit


интересует как можно записать в лог выход пользователя из системы. насколько я понимаю для этого можно запустить батник как процесс и записать момент его завершения, но делать я этого не умею.

кто поправит возможно присутствующую кривизну также буду благодарен

zonderz
16-04-2010, 14:59
xvoct,

один батник делайте на логон - другой на логофф
и вообще можете использовать eventlog и аудит учетных записей...

xvoct
16-04-2010, 15:07
вот меня и интересует как сделать батник на логофф. евентлог хранится не в текстовом формате, экспорт руками в тхт не вариант.

zonderz
16-04-2010, 15:36
вот меня и интересует как сделать батник на логофф. »

Локальные политики безопасности - сценарии запуска
только не спрашивайте где они:)

vitaliyboch
16-04-2010, 16:15
На локальном компьютере
Пуск -> Выполнить -> mmc.exe -> File -> Add/remove snap-in -> Group Policy Object Editor -> Add -> Finish -> Ok
Local Computer Policy -> User Configuration -> Windows Settings -> Scripts (Logon/Logoff)

По аналогии делается на уровне домена.

Ну или в реестре прописать вот тут HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts, что опаснее, так как тут сложнее заполнить все правильно.

xvoct
16-04-2010, 20:31
zonderz, vitaliyboch
спасибо, особенно за путь в реестре, в понедельник буду тестить на работе.

zonderz
16-04-2010, 23:20
Пуск -> Выполнить -> mmc.exe -> File -> Add/remove snap-in -> Group Policy Object Editor -> Add -> Finish -> Ok Local Computer Policy -> User Configuration -> Windows Settings -> Scripts (Logon/Logoff) »

с тоски помрешь, пока это наберешь. в 10 раз короче

xvoct
17-04-2010, 00:00
я gpedit.msc набирал, потом экспортировал из реестра все что нужно.

xvoct
19-04-2010, 15:03
еще проблема: не могу по сети закинуть нужные ключи в HKCU, так как машин достаточно много, делать это руками не хотелось бы. думал кинуть в RunOnce батник, чтобы тот при следующей загрузке прописал что надо, но у юзеров порезанные права. можно ли будет запустить его с администраторскими правами или есть еще какой нибудь способ?

vitaliyboch
19-04-2010, 16:19
regedit.exe /s file.reg - попробуй так

zonderz
20-04-2010, 04:31
закинуть нужные ключи в HKCU »

можно ли будет запустить его с администраторскими правами »

если вы запустите такой батник (батник для юзера, но с правами админа) он запишет данные в HKCU админа

Используйте ветку HKLM, в данном случае уже можно прописать скрипт в ГП (конф. компьютера) - скрип запустится с правами системы...


если вы хотите чтобы все-таки писалось в ветку HKCU, но у юзера нет прав к каким то веткам, то сначала дайте ему права (ГП, политики реестра), а затем вешайте батник на логон

xvoct
20-04-2010, 11:02
если использовать HKLM выходит писаться будет только включение и выключение компьютера, мне же нужно учитывать время работы разных юзеров за одним компом. то есть пришел Иванов, залогинился, поработал, отлогинился... на его место пришел петров, зашел под своей учеткой, поработал и так далее.

amel27
20-04-2010, 11:52
мне же нужно учитывать время работы разных юзеров за одним компом »

включите аудит на вход/выход в политике безопасности, потом останется анализировать лог "Security" по определенному коду события

xvoct
20-04-2010, 12:22
amel27, а как мне достать потом из этого лога события тем же батником, чтобы записать на сервер в папку с сегодняшним числом к примеру?

выходит поставить батник на логофф для всех учетных записей (имеющихся или созданных позже) невозможно?

zonderz
20-04-2010, 14:48
выходит поставить батник на логофф для всех учетных записей (имеющихся или созданных позже) невозможно? »

почему нет - прописывайте в политиках безопасности и все..

xvoct
20-04-2010, 19:56
при закидывании нужных ключей в реестр HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts и файла scripts.ini в C:\Windows\System32\GroupPolicy\User\Scripts\ не работает. видимо при добавлении в gpedit в реестр закидываются еще какие то ключи, не нашел...




© OSzone.net 2001-2012