Збереження в файл інформації в входах на комп'ютер

Мені знадобилося зберігати інформацію про те, який користувач і коли логін або завершував роботу на конкретному комп'ютері в домені. Варіантів вирішення цього завдання за допомогою GPO багато: як за допомогою стандартного аудиту, так і за допомогою різних скриптів. Мені необхідно було зберігати отримані дані про логіни в текстовий файл в зрозумілому людині вигляді.

Готового рішення, яке б мене повністю задовольнило я не знайшов. Є багато варіантів скриптів, які роблять щось схоже, але мені вони здалися не дуже зручними. Можна скористатися стандартним аудитом windows і збирати дані журналів з комп'ютерів, але у мене немає сховища для цих журналів, та й розбирати події не дуже зручно і наочно.

Я вирішив піти по найпростішому і очевидному шляху. Зробити мережеву папку з дозволом на запис користувачам, створити 2 скрипта для подій logon і logoff. За допомогою групової політики запускати ці скрипти. Вони під час роботи записують в текстовий файл наступні дані:

Для кожного комп'ютера створюється окрема папка з ім'ям комп'ютера в назві. У цій папці кожен день створюється новий файл з датою в назві. З такою структурою можна дуже легко і швидко подивитися в який день, в який час і хто заходив на комп'ютер. Скрипт написаний на VBS.

VBS скрипт для аудиту входів / виходів в комп'ютер

Як я вже писав вище, скрипт під час запуску створює в мережевому каталозі папку з ім'ям комп'ютера, в ній створює текстовий файл з поточною датою в імені. У сам файл записує інформацію про те, хто залогінився або вийшов з комп'ютера. Кожен новий запуск скрипта в один і той же день дописує інформацію в існуючий файл. На наступний день створюється новий файл з іншою датою в імені.

У другому файлі виділена рядок повинна бути LOGOFF. Перший файл ставимо на подію входу в систему, другий - на вихід. В одному текстовому файлі ми побачимо, коли людина зайшла на комп'ютер, а коли вийшов.

Додавання скрипта в групову політику

Тепер нам потрібно поширити виконання скриптів на комп'ютери. Я скористався стандартним функціоналом GPO. Не буду приводити картинки, як це зробити, в інтернеті є маса статей з різними версіями windows. Розповім словами, як це роблю я.

Для початку я створюю окрему політику. Я завжди для різних налаштувань створюють окремі політики. Мені так зручніше керувати ними. Можна оперативно відключити щось або додати налаштування окремої групи користувачів. Якщо додавати все в одну політику, гнучкості в управлінні не буде.

Таким чином, створюємо окрему політику. Відключаємо в ній конфігурацію комп'ютера, вона не потрібна. Скрипти будуть додаватися в налаштування користувача. Перейменовуємо скрипти, наприклад, в logon.vbs і logoff.vbs. Призначаємо кожній події свій скрипт. Після цього лінкуете в потрібне місце політику і перевіряєте.

Перевірка роботи vbs скрипта

В результаті роботи скрипта у вас повинні бути створені папки з іменами комп'ютерів. Приблизно ось так:

Збереження в файл інформації в входах на комп'ютер

В одній папці будуть накопичуватися текстові файли з інформацією про логіни користувачів конкретного комп'ютера:

У файлах буде приблизно така інформація:

Збереження в файл інформації в входах на комп'ютер

Далі використовуєте ці файли на ваш розсуд.

Під час налагодження можна вказати локальний шлях до файлу і запускати його вручну відразу на комп'ютері. Все повинно коректно відпрацьовувати. Після налагодження можна помістити в GPO.

Якщо у вас немає домену та групових політик, ви можете вручну або якимось іншим способом додати вказаний файл в автозапуск і реєструвати всі входи на комп'ютер в текстовий файл локально або на мережеву кулі.

висновок

Мені мало доводиться працювати з windows серверами. Відчуваю себе не дуже впевнено в цьому оточенні. Писати скрипти на bash і sh мені незрівнянно простіше, ніж на vbs або powershell. Тут питання звички і досвіду, але навіть з самого початку своєї роботи з серверами в Лінуксі мені працювати було цікавіше і приємніше. Але від вінди нікуди не дітися, доводиться бути в тонусі і вирішувати поставлені завдання.