Обновление членства в группах AD без перезагрузки/выключения

После добавления компьютера или учетной записи пользователя в группу безопасности Active Directory новые разрешения доступа или новые GPO применяются не сразу. Для обновления членства в группе и применения назначенных разрешений или групповых политик необходимо перезагрузить компьютер или выполнить выход из системы и вход в систему (для пользователя). Это связано с тем, что членство в группах AD обновляется только при выпуске билета Kerberos, что происходит при загрузке системы или при аутентификации пользователя при входе в систему.

Если вы не можете немедленно перезагрузить компьютер или выйти из системы, вы можете обновить членство учетной записи в группе AD с помощью команды klist.exe инструмент. Эта утилита позволяет сбрасывать и обновлять билеты Kerberos компьютера или пользователя.

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

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

whoami /groups

или GPResult:

gpresult /r /scope user

gpresult: членство в группах безопасности gpresult: членство в группах безопасности

Список групп, в которых состоит пользователь, отображается в окне «Пользователь входит в следующие группы безопасности» раздел.

Обновление членства в группах компьютеров и билета Kerberos без перезагрузки

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

gpresult /r /scope computer

Компьютер входит в следующие группы безопасности

gpresult scope computer - список членства в группах безопасностиgpresult scope computer - list security groups membership

Вы можете перечислить кэшированные билеты Kerberos, полученные компьютером, а также дату их получения и время следующего обновления.

klist.exe -li 0x3e7

klist: просмотр кэшированных билетов Kerberosklist: просмотр кэшированных билетов kerberos

Примечание. 0x3e7 это специальный идентификатор, указывающий на сеанс локального компьютера (Local System).

Теперь добавьте компьютер в группу безопасности AD (с помощью оснастки ADUC или с помощью PowerShell: Add-AdGroupMember -Identity grAVExclusionPC -Members wks-mns21$ )

Чтобы очистить кэш билетов Kerberos на компьютере и обновить членство компьютера в группах AD, выполните команду (для Windows 7 и Windows Server 2008R2)

klist -lh 0 -li 0x3e7 purge

Или для Windows 11/10/8 и Windows Server 2022/2019/2016:

klist –li 0x3e7 purge

klist -lh 0 -li 0x3e7 purgeklist -lh 0 -li 0x3e7 purge

Deleting all tickets:
Ticket(s) purged!

Обновите параметры групповой политики, используя gpupdate /force команду. После этого все групповые политики, назначенные группе AD с помощью фильтрации безопасности, будут применены к компьютеру без перезагрузки.

С помощью этой команды можно проверить, когда компьютер получил новые билеты Kerberos:

klist -li 0x3e7 tgt

После выполнения команды и обновления политик (вы можете обновить политики с помощью команды gpupdate /force ), все групповые политики, назначенные группе AD с помощью фильтрации безопасности, будут применены к компьютеру.

Если в домене настроена политика ограничения доступа LSA (например, политика Debug Program, ограничивающая использование SeDebugPrivilege), при выполнении команды klist -li 0: 0x3e7 purge , вы можете получить ошибку: «Ошибка вызова API LsaCallAuthenticationPackage«:

Current LogonId is 0:0x3d2de2
Targeted LogonId is 0:0x3e7
*** You must run this tool while being elevated, and you must have TCB or be a local admin.***
klist failed with 0xc0000001/-1073741823: {Operation Failed}
The requested operation was unsuccessful.

klist 0x3e7 purge failed with 0xc0000001klist 0x3e7 purge failed with 0xc0000001

В этом случае вам нужно будет запустить командную строку от имени NT AUTHORITY\SYSTEM и очистить кэш билетов Kerberos на компьютере в этой консоли:

psexec -s -i -d cmd.exe -запустить cmd от имени локальной системы с помощью инструмента psexec.exe

klist purge — сбросить билет на компьютер

gpupdate /force — обновить GPO

Этот метод обновления членства в компьютерной группе является единственным рабочим вариантом для обновления параметров GPO на клиентах, подключающихся к сети через VPN, где пользователь входит в систему, используя кэшированные учетные данные домена.

Перезагрузка членства в группах пользователей без выхода из системы

Другая команда используется для обновления назначенных групп безопасности Active Directory в пользовательском сеансе. Например, вы добавили пользователя в группу безопасности, предоставляющую доступ к общей папке. Пользователь не сможет получить доступ к этой сетевой папке , не выходя из системы и не включаясь снова.

доступ к ресурсу запрещенобщий доступ запрещен

Вы должны сбросить кэш билетов Kerberos пользователя, если хотите обновить список назначенных групп безопасности для этого пользователя. Откройте непривилегированную командную строку в пользовательском сеансе (не запускайте cmd в режиме администратора). Выполните команду:

klist purge

Current LogonId is 0:0x5e3d69
Deleting all tickets:
Ticket(s) purged!

klist purgeочистка списка

Чтобы увидеть обновленный список групп, вам нужно будет открыть новую командную строку с помощью runas (чтобы новый процесс был создан с новым маркером безопасности).

Перечислите группы пользователя:

whoami /groups

В среде Remote Desktop Services (RDS) можно сбросить билеты Kerberos сразу для всех сеансов удаленных пользователей с помощью следующей однострочной команды PowerShell:

Get-WmiObject Win32_LogonSession | Where-Object {$_.AuthenticationPackage -ne 'NTLM'} | ForEach-Object {klist.exe purge -li ([Convert]::ToString($_.LogonId, 16))}

Чтобы пользователь смог подключиться к общей сетевой папке, необходимо перезапустить оболочку File Explorer с новым маркером. (с новой группой безопасности)

  1. Откройте командную строку;
  2. Завершите процесс File Explorer текущего пользователя: taskkill /f /im explorer.exe
  3. Запустите новый процесс Проводника, используя учетные данные своей учетной записи. Можно использовать %USERDOMAIN%\%USERNAME% переменные окружения или указать домен и имя пользователя вручную. Например: runas /user:woshub\jsmith explorer.exe
  4. Введите пароль учетной записи;перезапустите explorer с пользователем runasперезапустить explorer с пользователем runas
  5. После этого File Explorer будет перезапущен с новым маркером доступа, и вы сможете получить доступ к сетевой папке с разрешениями новой группы безопасности.

В предыдущем способе вы должны явно указать пароль пользователя для обновления групп безопасности в Windows File Explorer. Если это невозможно, можно попробовать обходной путь.

Предположим, что пользователь был добавлен в группу AD для доступа к общей папке файлового сервера. Попробуйте получить доступ к ней с помощью короткому имени (NETBIOS) или FQDN((!!! это важно). Например, \\\lon-fs1.woshub.loc\Install. Но не по IP-адресу.

Для короткого имени сервера (NAME) и полного имени сервера (FQDN) используются разные билеты CIFS. Если вы ранее использовали FQDN для доступа к файловому серверу, после сброса билетов на клиенте с помощью очистка списка команда, вы сможете получить доступ к файловому серверу с помощью NAME (при первом доступе к SMB-ресурсу выдается новый билет с новыми группами безопасности). Старый билет FQDN все еще находится в процессе File Explorer и не будет сброшен до тех пор, пока он не будет перезапущен (как описано выше).

В этот момент пользователю будет выдан новый билет Kerberos. Вы можете проверить, был ли обновлен ваш билет TGT:

klist tgt

(см. Cached TGT Start Time значение)

обновленный билет klist tgtklist tgt renewed ticket

Общая папка, доступ к которой был предоставлен через группу безопасности AD, должна открываться без выхода пользователя из системы.

Запустите программу whoami /groups команду, чтобы убедиться, что пользователь получил новый TGT с обновленным списком групп безопасности без повторного входа в систему.

fqdn path share accessfqdn path share access

Еще раз напоминаем, что этот способ обновления членства в группах безопасности работает только для служб, поддерживающих Kerberos. Для служб с аутентификацией NTLM для обновления маркера потребуется перезагрузка компьютера или выход пользователя из системы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *