Короткий ответ
«LAPS не работает» почти всегда раскладывается на четыре слоя: схема AD не расширена, компьютеру нельзя писать свой пароль на объект, GPO не говорит бэкапить в AD, либо пароль есть, но нет права читать. Лечите слой, который красный, не переустанавливая Windows на WS-042.
Windows LAPS (встроенный в Windows 11 23H2/24H2 и поддерживаемые Server 2019/2022/2025 с обновлениями) и legacy Microsoft LAPS — разные атрибуты и разные ADMX. Смешение политик даёт «вроде включили, пароля нет». Цель для contoso.example: Update-LapsADSchema на хозяине схемы, Set-LapsADComputerSelfPermission на OU, GPO Windows LAPS с backup в Active Directory, группа на Set-LapsADReadPasswordPermission.
Не выдавайте Domain Users право читать пароль «чтобы заработало». Не отключайте Defender, чтобы LAPS «прошёл».
Симптомы и как отличить
Get-LapsADPassword -Identity WS-042пусто или Access Denied.- В ADUC атрибуты
msLAPS-*отсутствуют в схеме или пусты на объекте. - На клиенте журнал
Microsoft-Windows-LAPS/Operationalс ошибками обработки политики. - Helpdesk видит компьютер, но кнопка/команда пароля отказывается.
| Симптом | Слой |
|---|---|
| Cmdlet LAPS не найден на DC | RSAT/Windows LAPS не на этой ОС/KB, или вы на legacy-модуле AdmPwd.PS |
| Схема без msLAPS | не запускали Update-LapsADSchema |
| Схема есть, атрибут пуст | GPO, OU, self-permission, служба/канал обновления пароля |
| Атрибут есть, Get-LapsADPassword Access Denied | ACE чтения, не «LAPS сломан» |
| Пароль есть, вход не тот | другая учётка, см. защиту локального админа |
Возможные причины
- Не выполняли расширение схемы Windows LAPS.
- Компьютер не в OU с GPO, блокировка наследования, WMI-фильтр, security filtering.
- Нет
SELFpermission на запись пароля на OU. - Backup directory = Disabled или Azure AD, а вы читаете AD.
- Конфликт legacy AdmPwd и Windows LAPS; клиент слушает не ту ветку реестра.
- Часы клиента уехали, канал до
DC01мёртв, компьютер в quarantine/disabled. - Читаете с учётки без ACE; шифрование пароля требует корректных разрешений и актуального клиента.
Диагностика
1. Схема и cmdlet на DC01
Get-Command Update-LapsADSchema, Get-LapsADPassword, Set-LapsADComputerSelfPermission
Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -Filter 'name -like "ms-LAPS*"' |
Select-Object NameПустой список ms-LAPS* — схема не расширена. Наличие ms-Mcs-AdmPwd без ms-LAPS* — только legacy.
2. Объект компьютера
Get-ADComputer 'WS-042' -Properties * | Select-Object DistinguishedName, Enabled,
msLAPS-PasswordExpirationTime, 'ms-Mcs-AdmPwdExpirationTime'
nltest /sc_query:contoso.exampleDisabled computer и сломанный secure channel пароль не обновят.
3. GPO и реестр на WS-042
gpresult /r /scope computer
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Policies\LAPS' -ErrorAction SilentlyContinue
Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft Services\AdmPwd' -ErrorAction SilentlyContinue
Get-WinEvent -LogName 'Microsoft-Windows-LAPS/Operational' -MaxEvents 30Смотрите, задан ли backup directory (AD vs Entra vs disabled). Если заполнен только AdmPwd — клиент в legacy.
4. Эффективные права на атрибут
В ADUC → объект WS-042 → Security → Advanced, или:
dsacls (Get-ADComputer 'WS-042').DistinguishedNameИщите ACE для SELF на запись LAPS-атрибутов и ACE вашей группы helpdesk на чтение. Сравнивайте с эталоном после Set-LapsADComputerSelfPermission на соседней здоровой OU.
5. Сеть до DC
Test-NetConnection DC01.contoso.example -Port 389
Test-NetConnection DC01.contoso.example -Port 636Без LDAP клиент не запишет пароль. Это не «баг LAPS».
Решение
Сценарий A. Схемы нет
Окно с Schema Admin, backup System State DC01, хозяин схемы:
# уточнить хозяина схемы
netdom query fsmo
Update-LapsADSchemaПосле репликации проверьте ms-LAPS* на втором DC.
Сценарий B. Схема есть, пароль не пишется
Set-LapsADComputerSelfPermission -Identity 'OU=Workstations,DC=contoso,DC=example'GPO Windows LAPS: включить управление, backup = Active Directory, параметры пароля. Компьютер в OU. На WS-042:
gpupdate /force
# при наличии cmdlet:
Invoke-LapsPolicyProcessing
Get-WinEvent -LogName 'Microsoft-Windows-LAPS/Operational' -MaxEvents 10Убедитесь, что нет второй GPO «Disable LAPS» с Enforced.
Сценарий C. Пароль есть, helpdesk не читает
Set-LapsADReadPasswordPermission -Identity 'OU=Workstations,DC=contoso,DC=example' -AllowedPrincipals 'CONTOSO\Helpdesk-LAPS'Пользователь helpdesk должен быть в группе, обновить Kerberos-билет (klist purge + новый вход). Не добавляйте «Authenticated Users».
Сценарий D. Конфликт legacy и Windows LAPS
Выберите одну модель на OU. На современных 23H2/24H2 и Server 2022/2025 снимите legacy ADMX с той же OU, оставьте Windows LAPS. Не удаляйте сразу атрибуты ms-Mcs-AdmPwd, пока не подтвердили новый пароль и вход.
Как проверить, что проблема устранена
Get-LapsADPassword -Identity 'WS-042' | Format-List ComputerName, PasswordUpdateTime, ExpirationTimestampНа пилоте: локальный вход паролем из AD. Журнал Operational без повторяющихся ошибок политики за цикл. Учётка вне Helpdesk-LAPS по-прежнему получает отказ на чтение.
Повторите для второго компьютера в той же OU — не чините «одну машину реестром».
Если не помогло
- Entra-joined: смотрите Entra/Intune LAPS, не
Get-LapsADPassword. - Server 2019 без нужных обновлений: встроенный Windows LAPS мог не быть в RTM; поставьте поддерживаемые накопительные обновления, не «скачивайте случайный MSI с форума».
- Имя управляемой учётки в GPO не совпадает с реальной.
- Репликация AD: писали на
DC01, читаете с DC, куда ещё не дошло — подождите/принудительная репликация, не расширяйте схему повторно. - Фильтр GPO «только Windows 10» отсекает 11 24H2.
Дальше — не отключать firewall между клиентом и DC. Если LDAP режется, чините правила, см. firewall отключён как антипаттерн.
Профилактика
- Чеклист join: через N часов есть expiration LAPS, иначе алерт.
- Пилот OU перед всем доменом.
- Документ: какая группа читает пароль; изменения группы — под аудитом групп AD.
- Не смешивать legacy и Windows LAPS на одной OU без миграционного плана.
- RSAT с cmdlet LAPS на jump-хосте helpdesk, не на каждом ПК.
FAQ
Нужно ли быть Domain Admin, чтобы прочитать пароль?
Нет, и не должно. Отдельная группа и ACE. Domain Admin и так может слишком много — не делайте это рабочим процессом helpdesk.
Update-LapsADSchema безопасен повторно?
Повтор на уже расширенной схеме обычно идемпотентен, но не заменяет диагностику пустого атрибута. Не запускайте «на всякий случай» каждую пятницу.
Почему в ADUC нет колонки пароля?
Пароль не для витрины. Используйте Get-LapsADPassword или штатную оснастку с правом чтения. Не дампьте атрибут в CSV.
LAPS работает, но пароль «старый» после отзыва сотрудника
Ротация по расписанию и Reset-LapsPassword / reset permission для группы. Сам факт LAPS не отзывает сессии; смените пароль сразу при увольнении админа.
Можно ли хранить пароль LAPS в файле на DC01?
Нет. Точка хранения — AD (или Entra). Файл на диске DC — обход ACL и аудита.
Get-AdmPwdPassword vs Get-LapsADPassword
Первое — legacy-модуль. Второе — Windows LAPS. Смотрите, чем реально управляется WS-042, иначе «команда пустая» при живом другом канале.