Мені знадобилося зберігати інформацію про те, який користувач і коли логін або завершував роботу на конкретному комп'ютері в домені. Варіантів вирішення цього завдання за допомогою GPO багато: як за допомогою стандартного аудиту, так і за допомогою різних скриптів. Мені необхідно було зберігати отримані дані про логіни в текстовий файл в зрозумілому людині вигляді.
Готового рішення, яке б мене повністю задовольнило я не знайшов. Є багато варіантів скриптів, які роблять щось схоже, але мені вони здалися не дуже зручними. Можна скористатися стандартним аудитом windows і збирати дані журналів з комп'ютерів, але у мене немає сховища для цих журналів, та й розбирати події не дуже зручно і наочно.
Я вирішив піти по найпростішому і очевидному шляху. Зробити мережеву папку з дозволом на запис користувачам, створити 2 скрипта для подій logon і logoff. За допомогою групової політики запускати ці скрипти. Вони під час роботи записують в текстовий файл наступні дані:
Для кожного комп'ютера створюється окрема папка з ім'ям комп'ютера в назві. У цій папці кожен день створюється новий файл з датою в назві. З такою структурою можна дуже легко і швидко подивитися в який день, в який час і хто заходив на комп'ютер. Скрипт написаний на VBS.
VBS скрипт для аудиту входів / виходів в комп'ютер
Як я вже писав вище, скрипт під час запуску створює в мережевому каталозі папку з ім'ям комп'ютера, в ній створює текстовий файл з поточною датою в імені. У сам файл записує інформацію про те, хто залогінився або вийшов з комп'ютера. Кожен новий запуск скрипта в один і той же день дописує інформацію в існуючий файл. На наступний день створюється новий файл з іншою датою в імені.
У другому файлі виділена рядок повинна бути LOGOFF. Перший файл ставимо на подію входу в систему, другий - на вихід. В одному текстовому файлі ми побачимо, коли людина зайшла на комп'ютер, а коли вийшов.
Додавання скрипта в групову політику
Тепер нам потрібно поширити виконання скриптів на комп'ютери. Я скористався стандартним функціоналом GPO. Не буду приводити картинки, як це зробити, в інтернеті є маса статей з різними версіями windows. Розповім словами, як це роблю я.
Для початку я створюю окрему політику. Я завжди для різних налаштувань створюють окремі політики. Мені так зручніше керувати ними. Можна оперативно відключити щось або додати налаштування окремої групи користувачів. Якщо додавати все в одну політику, гнучкості в управлінні не буде.
Таким чином, створюємо окрему політику. Відключаємо в ній конфігурацію комп'ютера, вона не потрібна. Скрипти будуть додаватися в налаштування користувача. Перейменовуємо скрипти, наприклад, в logon.vbs і logoff.vbs. Призначаємо кожній події свій скрипт. Після цього лінкуете в потрібне місце політику і перевіряєте.
Перевірка роботи vbs скрипта
В результаті роботи скрипта у вас повинні бути створені папки з іменами комп'ютерів. Приблизно ось так:
![Збереження в файл інформації в входах на комп'ютер (день створюється новий) Збереження в файл інформації в входах на комп'ютер](https://images-on-off.com/images/124/soxranenievfaylinformatsiivvxodaxnakompy-e5d75846.png)
В одній папці будуть накопичуватися текстові файли з інформацією про логіни користувачів конкретного комп'ютера:
У файлах буде приблизно така інформація:
![Збереження в файл інформації в входах на комп'ютер (день створюється новий файл) Збереження в файл інформації в входах на комп'ютер](https://images-on-off.com/images/124/soxranenievfaylinformatsiivvxodaxnakompy-b7cc4889.png)
Далі використовуєте ці файли на ваш розсуд.
Під час налагодження можна вказати локальний шлях до файлу і запускати його вручну відразу на комп'ютері. Все повинно коректно відпрацьовувати. Після налагодження можна помістити в GPO.
Якщо у вас немає домену та групових політик, ви можете вручну або якимось іншим способом додати вказаний файл в автозапуск і реєструвати всі входи на комп'ютер в текстовий файл локально або на мережеву кулі.
висновок
Мені мало доводиться працювати з windows серверами. Відчуваю себе не дуже впевнено в цьому оточенні. Писати скрипти на bash і sh мені незрівнянно простіше, ніж на vbs або powershell. Тут питання звички і досвіду, але навіть з самого початку своєї роботи з серверами в Лінуксі мені працювати було цікавіше і приємніше. Але від вінди нікуди не дітися, доводиться бути в тонусі і вирішувати поставлені завдання.