Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   регистрировать в текстовом файле время логина пользователей на ПК (http://forum.oszone.net/showthread.php?t=281877)

Olegka88 06-05-2014 10:54 2347680

регистрировать в текстовом файле время логина пользователей на ПК
 
Всем привет! В нашей конторе развернута 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 2347718

Код:

@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 2347787

Georgio, огромное спасибо, проверил, все работает замечательно)

Olegka88 08-05-2014 10:27 2348741

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

Georgio 08-05-2014 19:32 2348988

Цитата:

Цитата Olegka88
Скрипт отрабатывает информацию только на тех компьютерах, где учетная запись пользователя является локальным администратором. »


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



Цитата:

Цитата Olegka88
Либо может писать второй скрипт и запускать от себя уже, который будет из файла залогининых юзеров извлекать %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 2350483

Проверил скрипт, отрабатывает всех пользователей 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?


Время: 13:11.

Время: 13:11.
© OSzone.net 2001-