Guida passo-passo: estensione dello schema, permessi sulle OU, GPO, lettura e rotazione delle password, verifica tramite eventi
Windows LAPS (Local Administrator Password Solution) è la funzionalità gratuita di Microsoft che gestisce in automatico la password di un account amministratore locale sui computer Windows: la genera casuale e diversa per ogni PC, la cambia periodicamente e la salva in Active Directory (o in Microsoft Entra ID), dove possono leggerla solo gli utenti autorizzati.
Senza LAPS capita spesso che tutti i PC abbiano la stessa password di amministratore locale: basta comprometterne uno per muoversi lateralmente su tutti gli altri (attacchi pass-the-hash). Con LAPS ogni computer ha una password unica e a scadenza, e la gestione manuale, impraticabile su molti PC, non serve più.
Indice
- 1. Windows LAPS e Legacy LAPS
- 2. Requisiti
- 3. Estensione dello schema di Active Directory
- 4. Permessi sulle OU
- 5. Creazione della GPO
- 6. Lettura della password
- 7. Rotazione della password
- 8. Verifica e monitoraggio
- 9. Risoluzione dei problemi
- 10. Checklist finale
- 11. Link utili
1. Windows LAPS e Legacy LAPS
Esistono due versioni di LAPS. Questa guida tratta la nuova Windows LAPS, integrata direttamente in Windows.
| Legacy LAPS (Microsoft LAPS) | Windows LAPS | |
|---|---|---|
| Installazione sul client | Pacchetto MSI da distribuire su ogni PC | Integrata nel sistema operativo, nessuna installazione |
| Attributi in Active Directory | ms-Mcs-AdmPwd, ms-Mcs-AdmPwdExpirationTime | msLAPS-Password, msLAPS-EncryptedPassword, msLAPS-PasswordExpirationTime e altri |
| Password crittografata in AD | No (testo in chiaro protetto solo dai permessi) | Sì, se abilitato e con livello funzionale del dominio 2016 o superiore |
| Cronologia password | No | Sì (password crittografate precedenti) |
| Account DSRM dei domain controller | No | Sì |
| Backup in Microsoft Entra ID | No | Sì |
| Gestione | GPO e modulo AdmPwd.PS | GPO/Intune e modulo PowerShell LAPS |
Una novità importante è la possibilità di gestire anche la password dell'account DSRM (Directory Services Restore Mode) dei domain controller, che con Legacy LAPS restava esclusa.
⚠️ Se usi ancora Legacy LAPS
Legacy LAPS è deprecata. Durante la migrazione non configurare Legacy LAPS e Windows LAPS sullo stesso account dello stesso computer: le due soluzioni cambierebbero la password a vicenda. Usa account diversi oppure migra un gruppo di computer alla volta.
2. Requisiti
- Computer membri di un dominio Active Directory (oppure aggiunti a Microsoft Entra ID, scenario non trattato qui).
- Sistemi operativi supportati: Windows 10, Windows 11, Windows Server 2019 e Windows Server 2022 (e versioni successive), aggiornati almeno con gli aggiornamenti cumulativi di aprile 2023, che hanno introdotto Windows LAPS.
- Windows LAPS protegge un solo account locale per computer.
- L'account amministratore locale da gestire deve già esistere: LAPS ne gestisce la password, non lo crea (vedi sezione 5).
- Lo schema di Active Directory va esteso con gli attributi di Windows LAPS (sezione 3): serve un account membro di Schema Admins.
- Per salvare le password crittografate il livello funzionale del dominio deve essere Windows Server 2016 o superiore.
- La configurazione dei client avviene tramite GPO (sezione 5).
💡 Account dedicato o Administrator integrato?
Puoi gestire l'account Administrator integrato oppure un account amministratore locale dedicato (nella guida lapsadmin). Un account dedicato, con l'Administrator integrato disabilitato, rende più difficile indovinare il nome dell'account da attaccare.
3. Estensione dello schema di Active Directory
Collegati a un domain controller (o a un server con il modulo PowerShell LAPS e gli strumenti RSAT per Active Directory) con un account Schema Admins e apri PowerShell come amministratore. Esegui:
Update-LapsADSchemaIl comando aggiunge allo schema gli attributi usati da Windows LAPS e chiede conferma per ciascuno: rispondi Y (sì) oppure A (sì a tutto).
msLAPS-PasswordExpirationTime– data di scadenza della password;msLAPS-Password– password in chiaro (usata solo se la crittografia è disabilitata);msLAPS-EncryptedPasswordemsLAPS-EncryptedPasswordHistory– password crittografata e relativa cronologia;msLAPS-EncryptedDSRMPasswordemsLAPS-EncryptedDSRMPasswordHistory– password dell'account DSRM dei domain controller;- il diritto esteso
msLAPS-Encrypted-Password-Attributes, che controlla chi può leggere le password crittografate.

ℹ️ Un'operazione da fare una volta sola
L'estensione dello schema vale per tutta la foresta ed è irreversibile, ma è un'aggiunta di attributi che non modifica gli oggetti esistenti. Va eseguita una sola volta; ripeterla con una versione più recente del modulo aggiunge gli eventuali attributi introdotti in seguito (vedi l'evento 10108 in sezione 8).
4. Permessi sulle OU
4.1 Permesso dei computer di scrivere la propria password
Ogni computer deve poter aggiornare i propri attributi LAPS. Concedi il permesso sull'OU che contiene i computer da gestire (indicando il nome dell'OU o il suo distinguished name):
Set-LapsADComputerSelfPermission -Identity "OU=,DC=,DC=" Il permesso viene ereditato dalle OU figlie: se i computer sono suddivisi in più OU, basta applicarlo all'OU padre.
4.2 Chi può leggere le password
Per impostazione predefinita le password possono essere lette solo da Domain Admins. Per delegare la lettura a un altro gruppo (ad esempio l'help desk) usa:
Set-LapsADReadPasswordPermission -Identity "OU=,DC=,DC=" -AllowedPrincipals "\" Per controllare chi ha i diritti estesi di lettura sull'OU:
Find-LapsADExtendedRights -Identity "OU=,DC=,DC=" 💡 Password crittografate
Con la crittografia attiva, oltre ai permessi sull'attributo conta anche l'impostazione GPO Configure authorized password decryptors, che indica il gruppo autorizzato a decrittografare (per impostazione predefinita Domain Admins). Se un gruppo delegato vede l'attributo ma non riesce a leggere la password, controlla anche questa impostazione (sezione 5).
5. Creazione della GPO
La GPO contiene solo impostazioni computer: creala con Gestione Criteri di gruppo (gpmc.msc) e collegala all'OU dei computer della sezione 4. Le impostazioni si trovano in:
Configurazione computer > Criteri > Modelli amministrativi > Sistema > LAPS (Computer Configuration > Policies > Administrative Templates > System > LAPS).
Configura almeno queste tre impostazioni:
| Impostazione | Valore | Note |
|---|---|---|
| Configurare la directory di backup delle password (Configure password backup directory) | Abilitato – Active Directory | Senza questa impostazione LAPS non gestisce la password. In alternativa: Azure Active Directory (Microsoft Entra ID). |
| Impostazioni password (Password Settings) | Abilitato | Complessità, lunghezza ed età massima in giorni della password (predefiniti: 4 tipi di caratteri, 14 caratteri, 30 giorni). |
| Nome dell'account amministratore da gestire (Name of administrator account to manage) | Abilitato – nome dell'account (es. lapsadmin) | Se non configurata, LAPS gestisce l'account Administrator integrato. L'account indicato deve esistere sul PC. |

⚠️ Lunghezza della password
Nell'esempio la lunghezza è impostata a 8 caratteri. È consigliabile non scendere sotto il valore predefinito di 14 caratteri e mantenere più tipi di caratteri: la password non va mai digitata a memoria, quindi la lunghezza non pesa sugli utenti.
Altre impostazioni utili nella stessa cartella:
- Enable password encryption – salva la password crittografata (richiede livello funzionale del dominio 2016+); attiva per impostazione predefinita quando il requisito è soddisfatto.
- Configure authorized password decryptors – gruppo autorizzato a decrittografare le password (vedi sezione 4.2).
- Configure size of encrypted password history – quante password precedenti conservare.
- Do not allow password expiration time longer than required by policy – impedisce di impostare manualmente scadenze più lunghe dell'età massima.
- Post-authentication actions – dopo un accesso con l'account gestito, al termine di un periodo di tolleranza cambia la password ed eventualmente disconnette l'utente o riavvia il PC.
- Enable password backup for DSRM accounts – da applicare con una GPO sui domain controller per gestire la password DSRM.
Applica la configurazione sui client con gpupdate /force (oppure attendi il normale aggiornamento dei criteri). Per forzare subito l'elaborazione di LAPS senza attendere puoi usare anche:
gpupdate /force
Invoke-LapsPolicyProcessing6. Lettura della password
6.1 Da Utenti e computer di Active Directory
Nelle proprietà dell'oggetto computer in Utenti e computer di Active Directory (dsa.msc) compare la scheda LAPS, con la scadenza della password corrente, il nome dell'account gestito e la password, visualizzabile con Mostra password o copiabile con Copia password. La scheda è popolata solo dopo che il client ha applicato la GPO e salvato la prima password.

6.2 Da PowerShell
Get-LapsADPassword -Identity "" -AsPlainTextRestituisce nome dell'account, password, data di aggiornamento e scadenza. Senza -AsPlainText la password viene mostrata come SecureString. Con -IncludeHistory vengono restituite anche le password precedenti conservate nella cronologia.
7. Rotazione della password
La password viene cambiata automaticamente alla scadenza impostata nella GPO. Puoi anticipare la rotazione, ad esempio dopo aver usato la password per un intervento:
- da ADUC, scheda LAPS: Fai scadere ora oppure imposta una nuova data di scadenza e premi Applica (vedi Figura 3);
- da PowerShell, impostando la scadenza a ora:
Set-LapsADPasswordExpirationTime -Identity "" Il client cambierà la password al successivo ciclo di elaborazione dei criteri (puoi forzarlo con Invoke-LapsPolicyProcessing). Eseguito sul computer gestito, come amministratore, il comando seguente cambia la password immediatamente:
Reset-LapsPassword💡 Rotazione automatica dopo l'uso
Invece di ricordarsi di far scadere la password, puoi usare l'impostazione Post-authentication actions (sezione 5): dopo ogni accesso con l'account gestito la password viene cambiata automaticamente allo scadere del periodo di tolleranza.
8. Verifica e monitoraggio
8.1 Elenco dei computer con LAPS attivo
Lo script seguente elenca i computer di un'OU che hanno una password LAPS crittografata salvata in Active Directory, con la relativa scadenza:
# Importa il modulo Active Directory
Import-Module ActiveDirectory
# OU in cui cercare i computer
$OU = "OU=,DC=,DC="
# Computer dell'OU con gli attributi LAPS
$computers = Get-ADComputer -SearchBase $OU -Filter * -Properties 'msLAPS-EncryptedPassword', 'msLAPS-PasswordExpirationTime'
# Tiene solo i computer con la password LAPS popolata
$lapsEnabledComputers = foreach ($computer in $computers) {
if ($computer.'msLAPS-EncryptedPassword') {
[PSCustomObject]@{
Computer = $computer.Name
Scadenza = [DateTime]::FromFileTime($computer.'msLAPS-PasswordExpirationTime')
}
}
}
# Elenco dei computer con LAPS attivo
$lapsEnabledComputers | Sort-Object Computer | Format-Table -AutoSizeℹ️ Crittografia disattivata
Se nella GPO la crittografia è disattivata, la password viene salvata nell'attributo msLAPS-Password invece che in msLAPS-EncryptedPassword: in quel caso sostituisci il nome dell'attributo nello script.
8.2 Eventi sul client
Windows LAPS registra la propria attività nel registro Applicazioni e servizi > Microsoft > Windows > LAPS > Operational. Per vedere gli ultimi 20 eventi:
Get-WinEvent -LogName "Microsoft-Windows-LAPS/Operational" -MaxEvents 20 | Format-Table TimeCreated, Id, LevelDisplayName, Message -AutoSize
| ID evento | Significato |
|---|---|
| 10003 | Avvio dell'elaborazione dei criteri LAPS |
| 10004 | Elaborazione dei criteri completata correttamente |
| 10005 | Elaborazione dei criteri non riuscita (il codice di errore è nel messaggio) |
| 10009 | LAPS configurato per il backup delle password in Active Directory |
| 10013 | Impossibile trovare l'account amministratore locale configurato |
| 10021 | Riepilogo della configurazione del criterio corrente |
| 10024 | Criterio LAPS configurato come disabilitato (nessuna directory di backup impostata) |
| 10054 | Elaborazione avviata in risposta a una notifica di modifica del criterio |
| 10055 | Domain controller usato per il salvataggio |
| 10108 | Avviso: un attributo (es. msLAPSCurrentPasswordVersion) non è presente nello schema |
| 10000 / 10002 | Componente LAPS caricato e inizializzato / scaricato |
Nell'esempio della figura l'elaborazione fallisce (10005) perché l'account configurato nella GPO non esiste sul PC (10013): crea l'account oppure correggi il nome nella GPO.
9. Risoluzione dei problemi
| Sintomo | Causa probabile | Dove intervenire |
|---|---|---|
| Scheda LAPS vuota in ADUC | GPO non applicata o non ancora elaborata | gpresult /r, sezione 5, Invoke-LapsPolicyProcessing |
| Evento 10024 | Directory di backup non configurata nella GPO | Sezione 5 |
| Eventi 10005 + 10013 | L'account da gestire non esiste sul PC | Sezione 5, eventi |
| Errore di accesso negato durante il salvataggio | Manca il permesso self sull'OU | Sezione 4.1 |
| GPO non applicata ai PC nel container Computers | Le GPO non si collegano ai container | Sezione 4.1 |
| L'help desk non vede la password | Permessi di lettura o decrittografia mancanti | Sezione 4.2 |
| Evento 10108 | Schema esteso con una versione meno recente del modulo | Sezione 3 |
| Password cambiata di continuo o non valida | Legacy LAPS e Windows LAPS sullo stesso account | Sezione 1 |
10. Checklist finale
- Schema esteso con
Update-LapsADSchema→ sezione 3. - Computer in un'OU e permesso self concesso con
Set-LapsADComputerSelfPermission→ sezione 4.1. - Permessi di lettura delegati ai gruppi che ne hanno bisogno → sezione 4.2.
- GPO collegata all'OU con directory di backup, impostazioni password e account da gestire → sezione 5.
- Password visibile in ADUC o con
Get-LapsADPassword→ sezione 6. - Eventi 10004 sui client e nessun errore → sezione 8.2.




