Войти

Показать полную графическую версию : регистрировать в текстовом файле время логина пользователей на ПК


Olegka88
06-05-2014, 10:54
Всем привет! В нашей конторе развернута AD 2008 (более 1000 юзеров) От начальства поступила задачка (хотят знать кто во сколько на работу приходит) регистрировать в текстовом файле время логина пользователей на ПК. Нашел простетцкий скрипт:

Код Code
1
echo %date% %time% %computername% %username% >> \\shareserver\logons.txt
Скрипт работает, информация в файлик собирается, вот в таком виде:

Код Code
1
2
05.05.2014 16:40:24,05 comp1 andreev
05.05.2014 16:47:12,50 comp2 ivanov
Но теперь начальство хочет, чтобы отображался ещё и ФИО. Соответсвенно я так понимаю должен проходить ldap запрос по логину. Нашел утилитку DsQuery, которой можно запросить нужную инфу. Но опыта в написании скриптов не имею, так что очень надеюсь на вашу помощь. Заранее спасибо!!

Georgio
06-05-2014, 13:12
@echo off
for /f "tokens=2 delims==" %%i in ('
wmic useraccount where Name^="%username%" get FullName /value
') do (
echo %date% %time% %computername% %username% %%i>>\\shareserver\logons.txt
)
exit /b

Olegka88
06-05-2014, 15:11
Georgio, огромное спасибо, проверил, все работает замечательно)

Olegka88
08-05-2014, 10:27
Georgio, ещё одна проблемка!
Скрипт отрабатывает информацию только на тех компьютерах, где учетная запись пользователя является локальным администратором.
Можно ли обойти это как нибудь? Либо может писать второй скрипт и запускать от себя уже, который будет из файла залогининых юзеров извлекать %username% и
определять ФИО?

Georgio
08-05-2014, 19:32
Скрипт отрабатывает информацию только на тех компьютерах, где учетная запись пользователя является локальным администратором. »


Значение "FullName" может быть и пустым.



Либо может писать второй скрипт и запускать от себя уже, который будет из файла залогининых юзеров извлекать %username% и
определять ФИО? »


@echo off
for /f "tokens=2 delims==" %%i in ('
wmic useraccount get Name /value
') do (
set "x=%%i _________________________________"
for /f "tokens=2 delims==" %%j in ('
wmic useraccount where Name^="%%i" get FullName /value
') do (
call echo %%x:~,35%% %%j
)
)
pause>nul
exit /b

Заодно и проверите наличие "ФИО" у всех пользователей.

Olegka88
12-05-2014, 17:40
Проверил скрипт, отрабатывает всех пользователей AD, ФИО у всех присутствует. Сейчас logon-скрипт собирает статистику в файл txt в виде:

07.05.2014 12:04:21,91 comp1 Andreev AA
07.05.2014 12:10:12,39 comp2 Ivanov II

Georgio, дико извиняюсь за назойливость, так как в скриптах я полный чайник, но можно ли предыдущем скриптом, который вы предложили,
обрабатывать юзераккаунты из вот этого файла и дописывать их, примерно чтоб так было:

07.05.2014 12:04:21,91 comp1 Andreev AA Андреев Андрей Андреевич
07.05.2014 12:10:12,39 comp2 Ivanov II Иванов Иван Иванович

Грубо говоря иметь два батника: первый: echo %date% %time% %computername% %username% >> \\shareserver\logons.txt собирает юзераккаунты в один файл,
а второй по надобности будем запускать для получения ФИО из файла logons.txt?




© OSzone.net 2001-2012