Текущая инфраструктура:

srv-dc.polygon.local (Server 2012 R2 Standard (Version 6.3.9600) со всеми обновлениями на момент написания заметки)

На заметку: Кто бы что не говорил, но что-то внедрять нужно после того, как Вы опробовали это в тестовой среде. Пусть и потратили время на эталонное развертывание, но это опыт и Вам уже не составит адаптировать на боевое исполнение. К тому же развертывание LAPS (Local Administrator Password Solution) задействует необратимое расширение схемы AD (Active Directory).

Шаг №1: Авторизуюсь на домен контроллере и проверю что все обновления либо из интернета, либо через WSUS установлены на систему. Обновления важны, позволяют избежать или приобрести новый функционал. Хм.

Шаг №2: Открываю браузер и скачиваю LAPS + документацию к нему.

Скачать LAPS и документацию к ней можно с этой страницы: https://www.microsoft.com/en-us/download/details.aspx?id=46899

Дистрибутив LAPS доступен в виде двух версий установочных msi файлов: для 32 (LAPS.x86.msi) и 64 (LAPS.x64.msi) битных систем.

Win + X — Command Prompt (Admin)

C:\Windows\system32>msiexec /i c:\soft\laps\LAPS.x64.msi

Устанавливать буду все компоненты:

  • AdmPwd GPO Extension – исполняемая часть LAPS, которая устанавливается на компьютеры клиентов и осуществляет генерацию, сохранение пароля в домене согласно настроенной политики;
  • Компоненты управления LAPS (Management Tools):
  • Fat client UI – утилита для просмотра пароля администратора;
  • PowerShell module – модуль PowerShell для управления LAPS;
  • GPO Editor templates – административные шаблоны для редактора групповой политики.

Устанавливаю LAPS на домен контроллер srv-dc

Шаг №3: Что входит в расширение схемы при текущей задаче внедрения LAPS. Это добавление двух записей в объект компьютера:

  • ms—MCS—AdmPwd– атрибут содержит пароль локального администратора в открытом виде;
  • ms—MCS—AdmPwdExpirationTime — хранит дату истечения срока действия пароля на компьютере.

Чтобы расширить схему: (Текущая учетная запись из под которой Вы авторизованы на домен контроллер должна быть включена в группу «Schema Admins»)

Win + X → Command Prompt (Admin) -

C:\Windows\system32>powershell

PS C:\Windows\system32> import-module AdmPwd.ps → Подгрузить модуль LAPS

PS C:\Windows\system32> update-AdmPwdADSchema

Operation DistinguishedName

--------- -----------------

AddSchemaAttribute cn=ms-Mcs-AdmPwdExpirationTime,CN=Schema,CN=Configurati...

AddSchemaAttribute cn=ms-Mcs-AdmPwd,CN=Schema,CN=Configuration,DC=polygon,...

ModifySchemaClass cn=computer,CN=Schema,CN=Configuration,DC=polygon,DC=local

Шаг №4: Из документации становится понятно, что внедренный LAPS хранит пароль локального администратора на рабочих местах в добавленном атрибуте (ms-MCS-AdmPwd), правда в Plain Text (чистом виде). Из исходя из этой информации нужно средствами Active Directory ограничить просмотр столь важной информации для всех кроме определенных администраторов домена.

OU = Marketing → это область где будут находиться компьютеры отдела «Маркетинга» и ее нужно защитить.

PS C:\Windows\system32> Find-AdmPwdExtendedRights -Identity Marketing | Format-Table ExtendedRightHolders

ExtendedRightHolders

--------------------

{NT AUTHORITY\SYSTEM, POLYGON\Domain Admins} → текущие права доступа на OU=Marketing, т. е. Доступ на взаимодействие со всеми объектами имеет: Система & Администраторы домена.

Чтобы оградить определенных пользователей/групп (к примеру рассмотрю для: CN=helpdesk,OU=IT,DC=polygon,DC=local) на доступ к атрибутам с правами чтения настройки производятся через утилиту «ADSI Edit».

Win + X → Control Panel — View by: Category → Small icons → Administrative Tools — ADSI Edit — ADSI Edit (через правый клик), выбираю «Connect to...»

  • Name: Default naming context
  • Path: LDAP://srv-dc.polygon.local/Default naming context
  • Select a well known Naming Context: Default naming context
  • Default (Domain or server that you logged in to): отмечаю

и нажимаю «ОК», разворачию доменную структуру и через правый клик мышью на OU=Marketing открываю Properties (Свойства) — вкладка Security — Advanced — в дефолтной вкладке Permissions нажимаю Add -

  • Principal: Select a principal

и указываю группу helpdesk

  • Type: Allowed
  • Applies to: This object and all descendant objects

Permissions (указываю права доступа)

  • All extended rights — галочку снимаю и не ставлю
  • List contents: отмечаю галочкой
  • Read all properties: отмечаю галочкой
  • Read permissons: отмечаю галочкой

и нажимаю Ok окна «Permission Entry for Marketing», потом Apply — OK.

На заметку: По выше приведенным действиям ограничиваем доступ к расширенным атрибутам необходимых OU с компьютерами.

Но это еще не все! Теперь нужно организовать права для учетных записей компьютеров с целью изменения значений атрибутов: ms-MCS-AdmPwd и ms-MCS-AdmPwdExpirationTime — самим компьютерам:

PS C:\Windows\system32> Set-AdmPwdComputerSelfPermission -OrgUnit Marketing

Name DistinguishedName

---- -----------------

Marketing OU=Marketing,DC=polygon,DC=local

Шаг №5: В предыдущем шаги я показал, как ограничивать доступ к атрибутам, сейчас же задача обратная, дать доступ (пользователям/группе (CN=helpdeskread,OU=IT,DC=polygon,DC=local)) на чтение паролей компьютеров указанной OU.

PS C:\Windows\system32> Set-AdmPwdReadPasswordPermission -OrgUnit Marketing -All

owedPrincipals helpdeskread

Name DistinguishedName

---- -----------------

Marketing OU=Marketing,DC=polygon,DC=local

Проверяю, а какие сейчас права на OU=Marketing

PS C:\Windows\system32> Find-AdmPwdExtendedRights -Identity Marketing | Format-T

able ExtendedRightHolders

ExtendedRightHolders

--------------------

{NT AUTHORITY\SYSTEM, POLYGON\Domain Admins, POLYGON\helpdeskread} → все правильно.

На заметку: Есть возможность дать определенной группе (CN=helpdeskwrite,OU=IT,DC=polygon,DC=local) пользователей права на изменение пароля компьютера:

PS C:\Windows\system32> Set-AdmPwdResetPasswordPermission -OrgUnit Marketing -AllowedPrincipals helpdeskwrite

Name DistinguishedName

---- -----------------

Marketing OU=Marketing,DC=polygon,DC=local

Шаг №6: Следующий шаг — это шаг создания объекта групповой политики и назначить его на OU внутри которой располагаются компьютеры которыми и будет осуществляться управление.

  • AdmPwd.adms → шаблоны GPO
  • AdmPwd.adml → языковый файл
Win + X → Command Prompt (Admin) -

C:\Windows\system32>xcopy /Y "C:\Windows\PolicyDefinitions\AdmPwd.admx" C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\

C:\Windows\PolicyDefinitions\AdmPwd.admx

1 File(s) copied

C:\Windows\system32>xcopy /Y "c:\Windows\PolicyDefinitions\en-US\AdmPwd.adml" c:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\en-US\

C:\Windows\PolicyDefinitions\en-US\AdmPwd.adml

1 File(s) copied

Win + X → Command Prompt (Admin) -

C:\Windows\system32>powershell

PS C:\Windows\system32> import-module AdmPwd.ps

Но увы почему-то система не находит нужно коммандлет для создания GPO:

PS C:\Windows\system32> Register-AdmPwdWithGPO

Register-AdmPwdWithGPO : The term 'Register-AdmPwdWithGPO' is not recognized

as the name of a cmdlet, function, script file, or operable program. Check the

spelling of the name, or if a path was included, verify that the path is

correct and try again.

At line:1 char:1

+ Register-AdmPwdWithGPO

+ ~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : ObjectNotFound: (Register-AdmPwdWithGPO:String)

[], CommandNotFoundException

+ FullyQualifiedErrorId : CommandNotFoundException

Ладно не буду пока заострять внимание почему ошибка, а просто через оснастку Group Policy Management создам GPO:

Win + X → Control Panel — Administrative Tools — Group Policy Management — и создаю GPO (GPO_Password_Administrador_Local) на OU=Marketing, открыв ее на редактирование вижу доступные опции

Настройки для GPO - их немного.

 

Как видно настроек не много, но все они по существу:

  • Enable local admin password management: Enabled (включить политику управления паролями LAPS);
  • Password Settings: Enabled – в политике задается сложности пароля, его длина и частота изменения (по аналогии с доменными политиками для паролей пользователей);
  • Name of administrator account to manage: Not Configured (Здесь указывается имя учетной записи администратора, пароль которой будет меняться. по умолчанию меняется пароль встроенного administrator с SID-500);
  • Do not allow password expiration time longer than required by policy: Enabled

Активирую настройки

1) Enable local admin password management: Enabled

2) Password Settings:

Complexity: Large letters, small letters, numbers, specials

Length: 13 characters

Age: 30 days

3) Name of administrator account to manage: указываю Administrator

Шаг №7: Теперь когда политика готова, проверим как она работает. Для этого берем доменный компьютер и помещаем его в OU=Marketing

Установка агента на компьютер может выполняться несколькими способами

  • Установка вручную (bat, powershell и т.д.)
  • Установка через GPO (Active Directory)
  • Установка через SCCM

Мне интересен способ установки через GPO применяя msi пакет

Устанавливаю агент LAPS на клиентские системы определенной OU

Также добавляем установку пакета для x86 систем, по принципу как обычно, а после через свойства опубликованного приложения отмечаем галочкой:

Select deployment method: Assigned

вкладка Deployment — Adanced… - и убираем/проверям отсутствие галочки у

«Make this 32-bit x86 application available to Win64 machines»

Итак в OU=Marketing находится компьютер W7X641, компьютер перезагружен. Проверяю, что на его системе в оснастке «Программы и компоненты» есть установленное через GPO приложение, если это пока не так, то обновляем GPO:

C:\Users\test2>gpupdate /force

Включены некоторые политики компьютера, выполняющиеся только при загрузке

компьютера.

Перезагрузить компьютер? (Y/N) Y

После перезагрузки снова проверяю установилось ли приложение: «Loal Administrator Password Solution» – как вижу на представленном скриншоте ниже , ответ положителен.

Агент LAPS на клиентской системе установлен

Проверяю с домен контроллер где у меня установлены все компоненты LAPS посредством утилиты «LAPS UI» какой пароль сейчас на компьютере:

Win + щелкаю на значок лупы и набираю «laps ui» следом происходит совпадение с имеющимися по имени.

Через LAPS UI можно отобразить пароль локального администратора на любой системе OU

Щелкаю левой кнопкой мыши по «LAPS UI» и, и что и, указываю имя компьютера, к сожаления нельзя ввести первые буквы именования дабы утилита сама дополнила при нажатии кнопки Search, а раз так, то получается очень ограниченный функционал у утилиты. Ну да ладно. Вот так выглядит извлечение информации по определенному компьютеру:

Информацию по паролю на удаленном компьютере, даты его окончания.

в моем случае пароля нет. Проверяю, что говорят логи на компьютере после перезагрузки. Если бы было все так просто. В моем случае я через GPO указал что локальная учетная запись администратора — это Administrator, но как я понял нет трансформации Administrator = Администратор на ПК и в следствии этого получил на W7X641 ошибку вида:

Журналы Windows — Приложение

  • Источник: AdmPwd
  • Код события: 3
  • Уровень: Ошибка
  • Описание: Could not get local Administrator account. Error 0x80070534.

Исходя из этого меня в GPO именование учетной записи локального администратора на «Администратор», затем gpupdate /force, shutdown /r /t 3

Какое еще наблюдение, если на компьютере учетная запись выключена то утилита с домен контроллера не покажет никакую информацию.

C:\Windows\system32>net user Администратор | findstr /I "активна"

Учетная запись активна No

C:\Windows\system32>net user Администратор /active:yes

Перезагружаю компьютер и проверяю, вроде как есть возможность прочитать пароль из атрибутов AD через PowerShell:

Пароль также можно получить с помощью PowerShell:

PS C:\Windows\system32> import-module AdmPwd.ps

PS C:\Windows\system32> get-admpwdpassword -computername W7X641

ComputerName DistinguishedName Password ExpirationTimestamp

------------ ----------------- -------- -------------------

W7X641 CN=W7X641,OU=Marketing,DC=polygon,DC=local JSA4[ay)4Rv7- 7/30/2019 11:51:1…

вижу, что с учетом настроек GPO сгенерировался пароль: JSA4[ay)4Rv7-

А если все же проверить через оснастку Active Directory Users and Computers — CN=W7X64 - Properties — Attribute Editor

  • Attribute: ms-Mcs-AdmPwd
  • Value: JSA4[ay)4Rv7-

Ответ да, это пароль. Проверяю на ПК если авторизоваться с его помощью — и авторизация происходит.

Если в GPO выключить настройку Password Settings, а задать пароль через атрибуты (к примеру Aa1234567), то смогу ли я зайти в систему — почему-то ПК не применяет изменения. Возможно я чего-то не понимаю, а значит мне нужно прочитать файл справки, к примеру LAPS_OperationsGuide.docx — и из него узнаю, что задать свой вроде как нельзя. Цель данного приложения LAPS — это централизованное назначение пароля через политики GPO на подконтрольные компьютеры в домене, а для обозначенных учетных записей или групп даются разрешения кто может его посмотреть.

Шаг №8: Допустим в структуре информационных технологий увольняется системный администратор или администратор технической поддержке или по другому поводу/происшествию и нужно сгенерировать новые пароли на всех компьютерах определенной OU:

Win + X → Command Prompt (Admin)

C:\Windows\system32>powershell

PS C:\Windows\system32> import-module AdmPwd.ps

PS C:\Windows\system32> get-adcomputer -filter * -SearchBase "OU=Marketing,DC=polygon,DC=local" | Reset-AdmPwdPassword -ComputerName {$_.Name}

DistinguishedName Status

----------------- ------

CN=W7X641,OU=Marketing,DC=polygon,DC=local PasswordReset

CN=W7X642,OU=Marketing,DC=polygon,DC=local PasswordReset

CN=W7X643,OU=Marketing,DC=polygon,DC=local PasswordReset

Чтобы вывести сгенерированные новые пароли для OU=Marketing:

PS C:\Windows\system32> get-adcomputer -filter * -searchbase "ou=Marketing,dc=polygon,dc=local" | get-admpwdpassword -Computername {$_.Name}

ComputerName DistinguishedName Password

------------ ----------------- --------

W7X641 CN=W7X641,OU=Marketing,DC=polygon,DC=local }Q1r9i{lc...

W7X642 CN=W7X642,OU=Marketing,DC=polygon,DC=local

W7X643 CN=W7X643,OU=Marketing,DC=polygon,DC=local

Как видно у рабочих станций W7X642 & W7X643 нет пароля, в моем случае я просто на будущее создал объекты компьютеров без действующих компьютеров, как только они будут введены в домен то им присвоится пароль.

Так а если создать объект W10X64 компьютера в OU=Marketing и ввести живую станцию с таким именем в домен, а затем посмотреть какой у нее пароль на учетную запись администратора:

C:\Users\ekzorchik.POLYGON>ver

Microsoft Windows [Version 10.0.17134.112]

C:\Users\ekzorchik.POLYGON>gpupdate /force

PS C:\Windows\system32> get-adcomputer -filter * -searchbase "ou=Marketing,dc=polygon,dc=local" | get-admpwdpassword -Computername {$_.Name}

ComputerName DistinguishedName Password

------------ ----------------- --------

W7X641 CN=W7X641,OU=Marketing,DC=polygon,DC=local }Q1r9i{lc...

W7X642 CN=W7X642,OU=Marketing,DC=polygon,DC=local

W7X643 CN=W7X643,OU=Marketing,DC=polygon,DC=local

W10X64 CN=W10X64,OU=Marketing,DC=polygon,DC=local %y;9YHgL{…

Плохо лишь одно, что для новой системы в OU будет с учетом политики GPO создан свой пароль, а не единый, значит опять запускать перегенерацию? Ответа на этот вопрос я пока не нашел. А?! смысл LAPS чтобы каждая станция была защищена персональным паролем — и как в там случае работать поддержке.

Итого! Я для себя разобрал как использовать LAPS в доменной структуре на базе Windows Server 2012 R2 и мой вывод, да! Можно использовать, но как всегда предстоит многое адаптировать к существующим реалиям.

На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru