Короткий ответ

«Слишком много прав» — это не ощущение, а токен: прямые и вложенные группы AD, локальные группы на WS-042, User Rights Assignment (Debug, Backup, Impersonate), членство в Administrators/Remote Desktop Users/учётки служб. Снимите лишнее с учётки роли, не с «всей IT». Domain Admin на ежедневной работе — отдельный антипаттерн: статья. Локальный админ парка — LAPS.

Не забирайте группы в пятницу без владельца ресурса. Не лечите доступ выключением firewall. Фиксируйте изменения: аудит групп.

Симптомы и как отличить

  • Пользователь ставит ПО, меняет время, отключает Defender «потому что можно».
  • whoami /groups полный экран, вложенность 5 уровней.
  • Доступ к \\fs01\Finance у отдела продаж.
  • Локальные Administrators на серверах содержат персональные учётки 2019 года.
НаблюдениеИное
Только Kerberos не пускаетSPN/время, не RBAC
Нужны права только на один ПКлокальная группа, не Domain Admins
Служба под пользователемgMSA/учётка службы, не «добавить в админы»
После увольнения доступ живте же группы + [отзыв] процессы HR

Возможные причины

  1. «Временная» группа 2018 года.
  2. Вложенность: Helpdesk → Server Operators → Administrators.
  3. GPO Restricted Groups наоборот добавила Domain Users.
  4. User Rights: «Debug programs» на OU рабочих станций.
  5. Делегирование OU «Full control» вместо reset password.
  6. Локальные админы для установки принтера вместо драйвер-политики.

Диагностика

На WS-042 под пользователем (или runas):

whoami /all
whoami /groups

В AD с RSAT:

Get-ADUser 'ivanov' -Properties MemberOf, TokenGroups | Select-Object Name, MemberOf
Get-ADPrincipalGroupMembership 'ivanov' -Recursive | Select-Object Name, GroupCategory, DistinguishedName

tokenGroups на объекте (SID групп) — что реально в билете после входа. После снятия групп пользователю нужен новый вход (klist purge недостаточно для всех сценариев — полный logoff).

Локально на сервере/ПК:

Get-LocalGroupMember -Group 'Administrators'
Get-LocalGroupMember -Group 'Remote Desktop Users'
Get-LocalGroupMember -Group 'Backup Operators'

User Rights (на пилоте):

secedit /export /cfg C:\Temp\ureg.inf
Select-String -Path C:\Temp\ureg.inf -Pattern 'SeDebugPrivilege|SeBackupPrivilege|SeTakeOwnershipPrivilege|SeImpersonatePrivilege'

Сравните с эталоном. Не копируйте inf обратно вслепую.

Доступ к ресурсу:

# на файловом сервере
Get-SmbShareAccess 'Finance'
Get-Acl D:\Shares\Finance | Format-List

Решение

Сценарий A. Лишние группы AD

  1. Таблица: группа → зачем → владелец → дата.
  2. Снимите прямое членство:
Remove-ADGroupMember -Identity 'Finance-Full' -Members 'ivanov' -Confirm:$false
  1. Проверьте вложенность: пользователь может остаться через другую группу.
  2. Пользователь: полный выход и вход. Проверка доступа к нужному и отказ к лишнему.

Сценарий B. Локальные Administrators

Уберите персональные учётки, оставьте роль+LAPS. Restricted Groups / Local Users and Groups (GPP) с Replace — только после пилота: Replace вычищает всё, включая нужное.

Сценарий C. User Rights слишком широкие

GPO: Computer Configuration → Windows Settings → Security Settings → Local Policies → User Rights Assignment. SeDebugPrivilege — не для Domain Users. SeBackupPrivilege — не для «чтобы копировать с рабочего стола». Вносите группы ролей, не пользователей.

Сценарий D. Делегирование OU

В ADUC Delegation Wizard: reset password / unlock, не Full Control на OU с компьютерами. Снимите Full Control с helpdesk, оставьте LAPS-read где нужно.

На DC01 выгрузите вложенность групп helpdesk и сравните с матрицей ролей: часто Helpdesk вложена в Account Operators и в локальные Administrators серверов сразу. Снимите слой за слоем, проверяя заявки (сброс пароля, LAPS, RDP). На WS-042 Restricted Groups Replace без эталона выкинет LAPS-учётку — пилот обязателен. Для файловых шар смотрите Effective Access мастера, не только MemberOf: deny ACE перекрывает любую группу. После чистки пользователь должен сделать полный logoff: RDP-сессия недельной давности держит старый токен и «права как будто не снялись». Зафиксируйте владельца каждой привилегированной группы и срок recertification.

В contoso.example запретите выдачу SeDebugPrivilege и SeTakeOwnershipPrivilege через Default Domain Policy на все компьютеры.

Не путайте вложенность Get-ADPrincipalGroupMembership -Recursive с токеном whoami /groups: до нового входа AD «уже сняли», а сессия на WS-042 ещё с правами. Выбивайте RDP и локальные сессии после снятия групп.

Как проверить, что проблема устранена

  • Новый whoami /groups без лишних SID.
  • Доступ к рабочим шарам есть, к чужим — Access Denied.
  • На WS-042 пользователь не ставит ПО в C:\Program Files без отдельной заявки.
  • Аудит 4728/4732 не возвращает его в те же группы без тикета.

Повторите для вложенных групп: Get-ADPrincipalGroupMembership -Recursive.

Если не помогло

  • Билет старый: пользователь не делал logoff, RDP-сессия висит неделями — выбить сессию.
  • Универсальные группы в другом домене леса — смотрите GC.
  • Файловая шара: Everyone Full + NTFS узкий или наоборот.
  • Приложение проверяет локальную группу, не AD — тогда локальная роль, не Domain Admins.

Профилактика

  • IGA: регулярный recertification групп.
  • Запрет Domain Users в привилегированных локальных группах.
  • Аудит изменений групп.
  • Модель ролей: роль-группа-ресурс, без персональных ACL на шарах где можно.
  • Привилегированный доступ — отдельные учётки, jump, не ежедневный ПК.

FAQ

Account Operators / Server Operators ещё нужны?

Часто нет: слишком широкие встроенные роли. Замените делегированием и узкими группами.

Пользователь должен ставить принтеры

Драйверы через GPO/Intune Point and Print Restrictions, не Administrators. На 23H2/24H2 ограничения драйверов учитывайте отдельно.

whoami не показывает вложенность?

/groups показывает токен после входа. Recursive в AD может отличаться до нового logon. Смотрите оба.

Можно ли «временно Domain Admins на час»?

Нет как практика. PIM/отдельная учётка/Just-in-time, не час в постоянной группе. См. статью про Domain Admin.

Backup Operators на рабочей станции

Это право читать любые файлы. Не для обычного пользователя. Для агента backup — учётка службы с документированным scope.

SID History после миграции

Может тащить старые права. Аудит SIDHistory, не только MemberOf.