Проблема
В доменной среде Active Directory долгое время существовала критическая уязвимость: единый пароль локального администратора на всех компьютерах. При развёртывании Windows по типовому образу все машины получают одинаковый пароль встроенной учётной записи Administrator. Если злоумышленник компрометирует этот пароль на одной рабочей станции, он получает локальный административный доступ ко всем компьютерам с тем же паролем. Это классический вектор горизонтального перемещения (lateral movement) внутри сети. Ручная смена паролей на сотнях машин нереалистична, а скрипты с жёстко закодированными паролями лишь усугубляют проблему. Windows LAPS (Local Administrator Password Solution) устраняет этот риск, автоматически назначая каждому компьютеру уникальный пароль локального администратора, регулярно его обновляя и безопасно храня его в защищённом атрибуте объекта компьютера в Active Directory.
Решение
Microsoft LAPS существует в двух реализациях:
- Legacy LAPS — устанавливается как отдельный MSI-пакет, совместим с Windows Server 2008+ и Windows 7+.
- Windows LAPS — встроен в операционную систему начиная с Windows 10 21H2 и Windows Server 2022, не требует установки, поддерживает шифрование паролей, интеграцию с Azure AD и расширенные сценарии.
Принцип работы одинаков: клиентский компонент на каждом компьютере генерирует новый пароль, записывает его в атрибут ms-Mcs-AdmPwd объекта компьютера в Active Directory и обновляет по расписанию. Администраторы с соответствующими правами могут прочитать текущий пароль через PowerShell или оснастку AD. Официальная документация по Windows LAPS доступна на Microsoft Learn. Подробное руководство по развёртыванию и миграции с Legacy LAPS описано в LAPS deployment and migration guide. Все командлеты PowerShell для управления LAPS задокументированы в LAPS Management PowerShell.
Пошаговая инструкция
Шаг 1. Установка Windows LAPS
В Windows 11 21H2+ и Windows Server 2022+ компонент LAPS встроен, но требует активации. На клиентских системах без Server Manager используйте DISM, на сервере PowerShell или графический мастер.
PowerShell (сервер):
powershell
Install-WindowsFeature -Name LAPS
DISM (клиентские системы):
cmd
dism /online /enable-feature /featurename:LAPS /all
После активации становятся доступны командлеты модуля LAPS: Get-LapsADPassword, Set-LapsADPasswordExpirationTime, Reset-LapsPassword и другие. Документация по всем командлетам: LAPS Management PowerShell.
Шаг 2. Расширение схемы Active Directory
Windows LAPS добавляет в схему Active Directory новые атрибуты для хранения паролей. Расширение схемы выполняется однократно на контроллере домена с правами администратора схемы.
powershell
Update-LapsADSchema
Этот командлет добавляет атрибуты ms-Mcs-AdmPwd, ms-Mcs-AdmPwdExpirationTime и другие. Подробнее о командлете: Update-LapsADSchema. Дополнительная информация о схеме доступна в разделе LAPS schema attributes.
Шаг 3. Настройка прав доступа к паролям
По умолчанию никто, кроме самого компьютера, не может прочитать сохранённый пароль. Необходимо явно предоставить права группам администраторов на уровне OU.
powershell
Set-LapsADReadPasswordPermission -Identity "OU=Workstations,DC=company,DC=local" -AllowedPrincipals "Domain Admins"
Set-LapsADResetPasswordPermission -Identity "OU=Workstations,DC=company,DC=local" -AllowedPrincipals "Domain Admins"
Эти команды делегируют группе «Администраторы домена» право читать текущий пароль и принудительно сбрасывать его для всех компьютеров в указанном подразделении. Настройка прав подробно обсуждается в сообществе Microsoft Q&A: LAPS permissions.
Шаг 4. Настройка групповой политики
Windows LAPS управляется через групповые политики. Шаблоны уже встроены в ОС, импорт не требуется.
- Откройте Управление групповой политикой (
gpmc.msc), создайте новый GPO или отредактируйте существующий. - Перейдите в раздел:
Конфигурация компьютера → Административные шаблоны → Система → LAPS
Основные настройки:
- Configure password backup directory — выберите «Active Directory».
- Password Complexity — настройте сложность пароля: длина (рекомендуется 14 символов), использование заглавных, строчных, цифр и спецсимволов.
- Password Age (days) — интервал смены пароля (по умолчанию 30 дней).
-
Name of administrator account to manage — оставьте пустым для встроенного
Administratorили укажите иную локальную учётную запись.
Пример проверки GPO через gpresult /h и устранения проблем с соответствием пароля политике сложности описан в Windows LAPS didn’t match password complexity.
Шаг 5. Проверка работы LAPS
На целевом компьютере выполните gpupdate /force или дождитесь обновления политик. Для принудительного запуска обработки политик LAPS и немедленной смены пароля используйте PowerShell:
powershell
Invoke-LapsPolicyProcessing
Reset-LapsPassword
Чтобы прочитать текущий пароль компьютера с административной станции, выполните:
powershell
Get-LapsADPassword -Identity "COMP01" -AsPlainText
Пароль отобразится в открытом виде только при наличии прав, предоставленных в шаге 3. Документация по командлету: Get-LapsADPassword.
Устранение распространённых проблем
| Симптом | Вероятная причина | Решение |
|---|---|---|
Пароль не сохраняется в AD после применения GPO и Invoke-LapsPolicyProcessing | Недостаточно прав у компьютера на запись в собственный атрибут | Проверьте права SELF на атрибуты ms-Mcs-AdmPwd и ms-Mcs-AdmPwdExpirationTime. Права предоставляются автоматически при выполнении Update-LapsADSchema, но могут быть переопределены. |
Команда Get-LapsADPassword возвращает пустой пароль | Не настроена GPO или не отработала обработка политик | Проверьте применение GPO через gpresult /h report.html. Убедитесь, что в разделе «Система → LAPS» политики настроены корректно. См. пример диагностики в Windows LAPS didn’t match password complexity. |
| Ошибка «The directory service is unavailable» при расширении схемы | Команда выполняется не на контроллере домена с ролью Schema Master или нет сетевой связности | Выполните Update-LapsADSchema на контроллере, владеющем ролью Schema Master. |
| Пароль не отображается в открытом виде | У пользователя нет прав на чтение пароля | Предоставьте права через Set-LapsADReadPasswordPermission (шаг 3). Используйте параметр -AsPlainText для отображения пароля. |
| Генерируемый пароль не соответствует политике сложности | GPO с настройками сложности не применилась к компьютеру | Проверьте результирующую политику через rsop.msc. Убедитесь, что GPO с настройками LAPS имеет более высокий приоритет, чем конфликтующие политики. |
Итог
Внедрение Windows LAPS это одна из самых эффективных мер по усилению безопасности доменной инфраструктуры, которая устраняет критический вектор горизонтального перемещения: единый пароль локального администратора. Встроенная в современные версии Windows реализация не требует установки дополнительного ПО, поддерживает шифрование паролей и легко настраивается через групповые политики. После развёртывания каждый компьютер в домене получает уникальный, регулярно обновляемый пароль локального администратора, а авторизованные администраторы всегда могут его прочитать, не прибегая к небезопасным практикам вроде хранения паролей в Excel-таблицах.







