====== Despliegue de Microsoft LAPS (viejo) ======
===== 1. Preparación =====
Antes de extender el esquema:
* Asegurarse de estar logueado con un usuario miembro de **Schema Admins** y **Enterprise Admins**.
* Tener el módulo de PowerShell **AdmPwd.PS** disponible (se instala con el [[https://www.microsoft.com/en-us/download/details.aspx?id=46899|MSI]] o mediante RSAT).
* Contar con acceso al instalador MSI, por ejemplo:
''\\mydomain.com\NETLOGON\LAPS\LAPS.x64.msi''
===== 2. Extender el esquema de Active Directory =====
Abrir PowerShell con privilegios de dominio y ejecutar:
Update-AdmPwdADSchema
Si devuelve ''The user has insufficient access rights'', cerrar sesión y volver a ingresar con la cuenta perteneciendo a los grupos mencionados.
===== 3. Delegar permisos a los equipos =====
Cada equipo debe poder escribir su propia contraseña en AD.
Esto se configura con:
Set-AdmPwdComputerSelfPermission -OrgUnit "OU=EstacionesDeTrabajo,DC=mydomain,DC=com" -ErrorAction Continue
Repetir para cada OU que contenga directamente objetos “computer”.
Por ejemplo:
Set-AdmPwdComputerSelfPermission -OrgUnit "OU=Portatiles,DC=mydomain,DC=com" -ErrorAction Continue
**Versión automatizada**
En dominios con muchas OUs, se puede automatizar la asignación con:
Get-ADOrganizationalUnit -Filter * -SearchBase "DC=mydomain,DC=com" |
Where-Object { $_.Name -in @("EstacionesDeTrabajo","Portatiles") } |
ForEach-Object {
Write-Host "Procesando $($_.DistinguishedName)"
Set-AdmPwdComputerSelfPermission -OrgUnit $_.DistinguishedName -ErrorAction Continue
}
Nota: el operador ''-in'' no funciona dentro de ''-Filter'', sólo dentro de ''Where-Object''.
===== 4. Revisar derechos extendidos =====
Para verificar qué grupos tienen permisos LAPS en una OU:
Find-AdmPwdExtendedRights -OrgUnit "OU=EstacionesDeTrabajo,DC=mydomain,DC=com" | ft
===== 5. Delegar lectura y reseteo de contraseñas =====
Crear grupos de seguridad dedicados, por ejemplo:
* **LAPS_Admins_R** → Lectura del password.
* **LAPS_Admins_RW** → Lectura + Reset del password.
Asignar permisos:
Set-AdmPwdReadPasswordPermission -OrgUnit "OU=EstacionesDeTrabajo,DC=mydomain,DC=com" -AllowedPrincipals "LAPS_Admins_R" -ErrorAction Continue
Set-AdmPwdResetPasswordPermission -OrgUnit "OU=EstacionesDeTrabajo,DC=mydomain,DC=com" -AllowedPrincipals "LAPS_Admins_RW" -ErrorAction Continue
===== 6. Despliegue del cliente LAPS =====
==== Opción A – mediante GPO ====
* Crear una OU de prueba (por ejemplo, OU=Test).
* Crear un nuevo GPO, por ejemplo **gpoInstall_LAPS**.
* En el editor del GPO:
* Ir a **Computer Configuration** → **Policies** → **Software Settings** → **Software installation**
* Agregar un nuevo paquete apuntando al instalador MSI:
''\\mydomain.com\NETLOGON\LAPS\LAPS.x64.msi''
* Asignar como **Assigned** (no Published).
* Linkear el GPO a la OU Test.
* Colocar equipos en esa OU y reiniciar.
* Durante el arranque, el sistema instalará LAPS automáticamente si tiene acceso de lectura al recurso compartido.
==== Opción B – instalación remota manual ====
Para ejecutar desde PowerShell:
msiexec /i \\mydomain.com\NETLOGON\LAPS\LAPS.x64.msi /qn
Ejemplo con filtro:
Get-ADComputer -Filter * -SearchBase "OU=EstacionesDeTrabajo,DC=mydomain,DC=com" | ForEach-Object {
Invoke-Command -ComputerName $_.Name -ScriptBlock {
msiexec /i \\mydomain.com\NETLOGON\LAPS\LAPS.x64.msi /qn
} -ErrorAction Continue
}
===== 7. Verificación =====
Después del despliegue, comprobar desde un equipo:
Get-AdmPwdPassword -ComputerName "EquipoPrueba"
Y validar que en AD el objeto del equipo tenga los atributos:
* ''ms-Mcs-AdmPwd''
* ''ms-Mcs-AdmPwdExpirationTime''
===== 8. Referencias =====
* **Update-AdmPwdADSchema** – agrega los atributos necesarios al esquema.
* **Set-AdmPwdComputerSelfPermission** – permite que las computadoras actualicen sus contraseñas.
* **Set-AdmPwdReadPasswordPermission** – delega lectura.
* **Set-AdmPwdResetPasswordPermission** – delega reseteo.
====== Windows LAPS Deployment Steps (current) ======
===== 1. Update Domain Controllers =====
* Ensure all DCs are patched to at least the April 11, 2023 update (Windows Server 2019/2022 or newer).
* Run Windows Update on *all* DCs before schema extension.
===== 2. Extend Active Directory Schema =====
* Open PowerShell as Administrator on a supported DC.
* Import the LAPS module:
ipmo LAPS
* Verify module:
gcm -Module LAPS
* Extend schema:
Update-LapsADSchema
===== 3. Verify LAPS Attributes =====
* Run again with verbose:
Update-LapsADSchema -Verbose
* Confirm attributes like **msLAPS-Password**, **msLAPS-EncryptedPassword**, etc. are present.
===== 4. Set Computer Self-Permission =====
* Grant managed devices permission to update their own password:
Set-LapsADComputerSelfPermission -Identity "OU=Company,DC=domain,DC=local"
===== 5. Configure Group Policy =====
* Create a new GPO (e.g., **C_LAPS**).
* Navigate: **Computer Configuration → Policies → Administrative Templates → System → LAPS**.
* Enable and configure:
- **Configure password backup directory** → Active Directory or Entra ID
- **Password Settings** → complexity, length, expiration
- **Name of administrator account to manage** → leave *Not Configured* to manage built-in .\Administrator, or set to custom (e.g., lapsadmin)
- **Configure authorized password decryptors** → define who can read/reset passwords
===== 6. Create/Manage Local Admin Account =====
* If using a custom account (e.g., lapsadmin), deploy it via GPO or script.
* Disable other local admin accounts for security.
===== 7. Retrieve Passwords =====
* **GUI**: ADUC → Computer object → *LAPS tab* → Show Password
* **PowerShell**:
Get-LapsADPassword -Identity "PCNAME" -AsPlainText
===== 8. Test & Reset =====
* Sign in with the managed account and password.
* Reset manually if needed:
Reset-LapsPassword
----
==== Key Notes ====
* No MSI client install required — Windows LAPS is built into supported OS versions.
* Legacy LAPS UI does **not** work with Windows LAPS; use ADUC or PowerShell.
* Best practice: start with .\Administrator, later switch to a custom account if desired.
https://www.alitajran.com/windows-laps/#h-how-to-configure-windows-laps