IT Toolbox
Menu
HomeProceduresDeploy Windows LAPS
Procedure

Deploy Windows LAPS

Deploy Windows LAPS to an AD DS pilot OU with scoped permissions, encryption settings, password backup, recovery and rotation checks.

TopicProcedures → About 6 min read

Objective

Deploy Windows LAPS with AD DS backup on a pilot OU, explicit reader and decryptor roles, evidence of password backup and a tested recovery path.

  • Rotation is tested on the selected pilot, the stored state is updated and the effective policy remains limited to intended OUs.

Prerequisites

  • Inventory Windows LAPS support and any legacy LAPS settings, record the target computer OU and current delegation, and back up the pilot GPO configuration. Define the managed account, authorized readers and decryptors and how local administrative access will be recovered if processing fails.
  • Use these PowerShell examples in the stated administration or pilot context with appropriate rights. Replace the OU, domain, groups and pilot name before use. Schema changes, delegation, policy refresh and rotation modify state; WhatIf previews do not. Reset-LapsPassword and Invoke-LapsPolicyProcessing operate on the local machine. Protect any recovered secret.

Step-by-step procedure

Establish the baseline and scope

Inventory Windows LAPS support and any legacy LAPS settings, record the target computer OU and current delegation, and back up the pilot GPO configuration. Define the managed account, authorized readers and decryptors and how local administrative access will be recovered if processing fails.

  • The intended target, prior configuration and service-specific success criteria are recorded.

Prepare the AD DS backup design

This workflow stores Windows LAPS passwords in AD DS. Confirm supported patched clients, the administration module and replication health. Extend the forest schema once through the approved schema-change process, and grant computer self-write permission on the pilot OU. An Entra-only backup design uses another workflow and does not require this AD schema preparation.

  • The intended AD DS directory, schema preparation and pilot computer permissions are verified.

Separate password reading from decryption

Use the real OU distinguished name and a named reader group such as CONTOSO\GG-LAPS-Readers. Grant only the required password-read rights, then audit existing extended-right holders with Find-LapsADExtendedRights. Reading encrypted attributes does not automatically authorize decryption; configure the encryption principal in policy and test with an intended reader and a non-reader.

  • Only intended principals can retrieve and, where required, decrypt the pilot password.

Distinguish expiration rights from local rotation

Delegate expiration-time changes to a separate operator group if the operating model requires it. The AD reset permission changes the stored expiration time; it is different from Reset-LapsPassword, which rotates the password locally on the machine where that command runs. Keep these scopes explicit and do not execute a local reset on the administration workstation by mistake.

  • Directory expiration delegation and local password rotation have separate roles and targets.

Apply one Windows LAPS policy to a pilot OU

Link the pilot GPO only to the selected computer OU and set BackupDirectory to AD DS, value 2. Define password settings and the intended managed account. Encryption requires a suitable domain functional level; choose authorized decryptors explicitly. A custom account must exist unless a supported automatic-account-management configuration provisions it. Check Central Store templates and policy precedence.

  • The pilot has the intended effective policy and managed account before rollout.

Process policy on the selected pilot

Refresh policy and invoke LAPS processing on the selected pilot with appropriate rights. These actions change system state and policy refresh may request sign-out or restart. Review the LAPS operational log for backup and local-account results, including events 10018 and 10020 when relevant. A successful processing request alone does not prove that a usable secret was backed up.

  • The selected pilot has a current backed-up password and no unexplained processing failure.

Test retrieval without exposing the secret

From a protected administration session, query the pilot computer as an authorized operator. Avoid plaintext output in transcripts, tickets and shared terminals; use -AsPlainText only for the controlled recovery check. Verify the intended decryptor can retrieve the secret, then rotate it on the pilot and verify the new stored state. Never copy an example password into a deployment.

  • Recovery access and post-test rotation are verified without retaining a plaintext password in evidence.

Expand only after recovery and permissions pass

Check several processing cycles and a controlled recovery test before adding OUs in waves. Monitor missing or stale backups, LAPS events and effective reader/decryptor rights. Document migration from legacy Microsoft LAPS and avoid competing policies. Stopping the pilot policy does not restore an earlier password; retain an approved recovery method and never try to remove the schema extension.

  • Each wave has recent backup evidence, defined recovery access and a measured stop criterion.

Validate the complete service

Pilot events and AD evidence show current password backup and successful local-account processing. Record the full acceptance results below before extending the change.

  • Intended readers/decryptors recover the secret; an unprivileged non-reader cannot.
  • Rotation is tested on the selected pilot, the stored state is updated and the effective policy remains limited to intended OUs.

Examples, targets and evidence limits

Use these PowerShell examples in the stated administration or pilot context with appropriate rights. Replace the OU, domain, groups and pilot name before use. Schema changes, delegation, policy refresh and rotation modify state; WhatIf previews do not. Reset-LapsPassword and Invoke-LapsPolicyProcessing operate on the local machine. Protect any recovered secret.

Observe available Windows LAPS commands

Get-Command -Module LAPS | Sort-Object Name

Observe the local operating-system build

Get-ComputerInfo | Select-Object WindowsProductName,WindowsVersion,OsBuildNumber

Preview the forest schema extension without applying it

Update-LapsADSchema -WhatIf

State-changing forest operation: extend the Windows LAPS schema after approval and preparation

Update-LapsADSchema -Verbose

Preview the pilot OU self-write delegation

Set-LapsADComputerSelfPermission -Identity "OU=Pilote-LAPS,OU=Postes,DC=contoso,DC=local" -WhatIf

State-changing directory operation: apply the intended pilot self-write delegation

Set-LapsADComputerSelfPermission -Identity "OU=Pilote-LAPS,OU=Postes,DC=contoso,DC=local"

State-changing directory operation: delegate password reading to the named group

Set-LapsADReadPasswordPermission -Identity "OU=Pilote-LAPS,OU=Postes,DC=contoso,DC=local" -AllowedPrincipals "CONTOSO\GG-LAPS-Readers"

State-changing directory delegation followed by a read-only extended-rights audit

Set-LapsADResetPasswordPermission -Identity "OU=Pilote-LAPS,OU=Postes,DC=contoso,DC=local" -AllowedPrincipals "CONTOSO\GG-LAPS-Operators"
Find-LapsADExtendedRights -Identity "OU=Pilote-LAPS,OU=Postes,DC=contoso,DC=local"

State-changing action on the pilot: refresh Group Policy; review any restart or sign-out request

gpupdate /force

State-changing processing on the selected pilot; this is not a remote target selector

Invoke-LapsPolicyProcessing

Observe recent LAPS operational events on the selected computer

Get-WinEvent -LogName "Microsoft-Windows-LAPS/Operational" -MaxEvents 30 | Select-Object TimeCreated,Id,LevelDisplayName,Message

Read protected pilot password metadata as an authorized operator

Get-LapsADPassword -Identity "PC-LAPS-01"

Sensitive read: display a password only in the controlled recovery session, without transcripts

Get-LapsADPassword -Identity "PC-LAPS-01" -AsPlainText

State-changing local operation: rotate on the selected pilot only

Reset-LapsPassword

Process policy on the selected pilot and confirm the post-rotation stored state

Invoke-LapsPolicyProcessing

Validation

The procedure is validated when:

  • Pilot events and AD evidence show current password backup and successful local-account processing.
  • Intended readers/decryptors recover the secret; an unprivileged non-reader cannot.
  • Rotation is tested on the selected pilot, the stored state is updated and the effective policy remains limited to intended OUs.

Rollback

  • Stop or unlink the pilot policy under the migration plan while preserving a known recovery route and any needed stored password.
  • Review introduced OU delegations against the recorded ACLs before removing them; do not revoke the only recovery operator prematurely.
  • Do not try to reverse the schema extension or restore an old local password; policy rollback does not undo password rotation.

Troubleshooting / common errors

  • No backed-up secret: check effective BackupDirectory policy, managed account, OU ACLs, replication and LAPS operational events.
  • Reader cannot decrypt: distinguish read permission from the configured encryption principal and confirm the object OU.
  • Rotation happens on an unexpected computer: stop and verify local versus directory-command scope before repeating any state-changing action.

Official references

Keep the previous state, chosen targets, diagnostic times and observed outcome with the change record.

Support the development of BAOI Hosting, domains and new IT resources.
❤️ Support BAOI

My favorites