====== Despliegue de LAPS ======
===== 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.