Оновлення членства в групах AD без перезавантаження / перелогіна

Відомий всім адміністраторам факт, що після додавання комп'ютера або користувача в групу Active Directory, для поновлення членства в групах і застосування призначених прав / політик, потрібно перезавантажити комп'ютер (якщо в доменну групу додавалася обліковий запис комп'ютера) або перезайти в систему (для користувача). Це пов'язано з тим, що членство в групах AD оновлюється при створенні квитка Kerberos, яке відбувається при завантаженні системи і при вході користувача.

У деяких випадках перезавантаження системи або logoff користувача не виконаємо по виробничим причин. А скористатися отриманим правами, доступом або застосувати нові політики потрібно вже зараз. Є можливість оновити членство облікового запису в групах AD без перезавантаження або перереєстрації користувача в системі.

Примітка. Описана в даній статті методика буде працювати тільки для мережевих сервісів, що підтримують Kerberos аутентифікацію. Служби, що працюють тільки з NTLM аутентифікацією як і раніше вимагають логофа + Логон користувача або перезавантаження Windows.

Список груп, в яких складається поточний користувач можна отримати з командного рядка за допомогою команди:

whoami / groups

або GPresult

gpresult / r

Список груп, в яких створені учасником міститься в розділі The user is a part of the following security groups.

Скинути поточні тікети Kerberos без перезавантаження може утиліта klist.exe . Klist включена в ОС Windows починаючи з Windows 7, для XP і Windows Server 2003 встановлюється в складі Windows Server 2003 Resource Kit Tools.

Щоб скинути весь кеш тікетів Kerberos комп'ютера (локальної системи) і відновити членство комп'ютера в групах AD, потрібно в командному рядку з правами адміністратора виконати команду:

klist -lh 0 -li 0x3e7 purge

Примітка. 0x3e7 -  спеціальний ідентифікатор, який вказує на сесію локального комп'ютера (Local System).

Після виконання команди і поновлення політик до комп'ютера будуть застосовані всі політики, призначені групі AD через Security Filtering.

Що стосується користувача. Припустимо, доменна учетка користувача була додана в групу Active Directory для доступу до файлового ресурсу. Природно, доступ до каталогу без перелогіна у користувача не з'явиться.

Скинемо все тікети Kerberos користувача командою:

klist purge

Щоб побачити оновлений список груп, потрібно запустити нове вікно командного рядків і через runas, щоб новий процес був створений з новим токеном безпеки.

Припустимо, група AD користувачеві призначалася для надання доступу до мережевого каталогу. Спробуйте звернутися до нього по FQDN імені (наприклад, \\ msk-fs1.winitpro.loc \ distr) і перевірте, що TGT тікет був оновлений:

klist tgt

Мережевий каталог, до якого був наданий доступ через групу AD, повинен відкритися без перелогіна користувача (!!! обов'язково використовувати FQDN ім'я).