Windows Server 2016/2019: come impostare password di dominio da 15+ caratteri (GPO, FGPP e audit)

Vuoi imporre 15+ caratteri per le password di dominio ma su Windows Server 2016/2019 la GPMC ti ferma a 14? In questa guida pratica trovi percorsi supportati, passaggi passo‑passo con GPO/ADAC/PowerShell, strategie di audit e un playbook operativo per arrivare a 15 (o più) senza rompere replica e autenticazione.

Indice

Perché vedi ancora “14” nella Default Domain Policy

Storicamente l’editor delle Account Policies sui Domain Controller (DC) Windows Server 2016/2019 mostra per “Minimum password length” un intervallo 0–14. Questo limite è legato a implementazioni precedenti del SAM/criteri di password esposti dalla console, non alla capacità di Active Directory (che con le Fine‑Grained Password Policies, o FGPP/PSO, supporta lunghezze ben oltre 14). Su build più recenti di Windows Server sono stati introdotti criteri che “sbloccano” il campo, portandolo a 0–128 e consentendo anche l’audit della lunghezza minima.

Risposta rapida

  • Non puoi aggiornare i DC? Usa FGPP/PSO: è supportato, potente e non richiede upgrade dell’OS. È il percorso consigliato su domini rimasti a 2016/2019 LTSC.
  • Puoi aggiornare tutti i DC (inclusi RODC)? Porta i DC a una build che supporti i nuovi criteri (Windows Server v2004+/2022/2025), abilita Accounts: Relax minimum password length limits sui DC e imposta 15+ nella Default Domain Policy.
  • Hack di registro? Evitali in produzione: non sono supportati, non replicano come policy di dominio e sono fragili.

Tabella di decisione: percorsi supportati

Percorso consigliatoQuando usarloPassaggi chiave
Aggiornare i DC e abilitare i nuovi criteriHai DC su Windows Server v2004 (SAC), Server 2022/2025 o superiori1) Applica aggiornamenti cumulativi di agosto 2020 o successivi.
2) In una GPO che si applica alla OU “Domain Controllers”, abilita Accounts: Relax minimum password length limits (Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options).
3) Nella Default Domain Policy imposta Minimum password length = 15 (campo ora 0–128).
4) Forza la replica e verifica con net accounts /domain.
Fine‑Grained Password Policy (FGPP/PSO)Il dominio resta su Windows Server 2016/2019 LTSC1) In ADAC crea un Password Settings Object con MinPasswordLength = 15 (FGPP supporta 1–255).
2) Associalo a utenti o gruppi (es. un gruppo pilota, poi Domain Users).
3) In alternativa, usa PowerShell (vedi script più sotto).
4) Verifica il PSO effettivo con Get-ADUserResultantPasswordPolicy.
Registro/ADMX personalizzatiSolo in emergenza, in lab, e sapendo che non è supportatoSpingere un valore >14 in chiavi LSA via GPP‑Registry può produrre esiti incoerenti e non replica come policy di dominio. Sconsigliato in produzione.

Prerequisiti e verifiche rapide

  • Inventario DC e versioni: elenca OS e build di tutti i DC (inclusi eventuali RODC). Su PowerShell: Get-ADDomainController -Filter * | Select-Object Name, IPv4Address, Site, OperatingSystem, OperatingSystemVersion | Format-Table -Auto
  • Livello funzionale: FGPP richiede almeno livello funzionale di dominio Windows Server 2008. Verifica con: Get-ADDomain | Format-List Name, DomainFunctionalLevel
  • Service account e app legacy: mappa account tecnici/servizi che non gestisci con gMSA. Pianifica eccezioni temporanee con PSO dedicato.
  • Comunicazione: prepara un avviso agli utenti con la data di attivazione e linee guida per creare passphrase lunghe.

Percorso A — Aggiornare i DC e sbloccare la lunghezza 0–128 nella GPO di dominio

Se puoi portare tutti i DC a una build che introduce i nuovi criteri, hai il percorso più semplice perché continui a governare tutto dalla Default Domain Policy (DDP). Importante: finché un solo DC resta su 2016/2019 “puro” senza supporto ai criteri estesi, puoi incontrare comportamenti non uniformi (replica e enforcement).

Passo 1 — Aggiorna

  1. Porta i DC a Windows Server 2022/2025 (o Windows Server v2004+). Installa gli aggiornamenti cumulativi da agosto 2020 in poi.
  2. Verifica che gli aggiornamenti siano presenti su ogni DC e che non ci siano riavvii pendenti.

Passo 2 — Abilita “Accounts: Relax minimum password length limits” sui DC

  1. Crea una nuova GPO, ad es. “DC – Security Options (Relax min pwd length)”, e linkala alla OU Domain Controllers.
  2. Modifica la GPO: Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options.
  3. Apri Accounts: Relax minimum password length limits e imposta Enabled.

Questa opzione fa sì che i DC accettino e applichino lunghezze minime superiori a 14 definite tramite criteri.

Passo 3 — Imposta 15+ nella Default Domain Policy

  1. Apri la Group Policy Management sul DC o su una console di gestione.
  2. Modifica la Default Domain Policy: Computer Configuration → Windows Settings → Security Settings → Account Policies → Password Policy.
  3. Imposta Minimum password length su 15 (ora il controllo accetta da 0 a 128), valuta anche:
    • Password must meet complexity requirements: Enabled oppure adotta complessità “morbida” puntando su lunghezza & blacklist.
    • Maximum password age: imposta un valore coerente con i tuoi standard.
    • Enforce password history: almeno 24.

Passo 4 — Replica e verifica

  1. Esegui gpupdate /force su ciascun DC o attendi l’applicazione automatica.
  2. Verifica a livello di dominio: net accounts /domain
  3. Prova un cambio password da un account di test con <15 caratteri: la richiesta deve essere rifiutata.

Percorso B — FGPP/PSO su domini Windows Server 2016/2019

Le Fine‑Grained Password Policies permettono di definire criteri di password diversi per insiemi di utenti, indipendentemente dal limite 14 esposto dalla DDP su 2016/2019. Sono memorizzate in System → Password Settings Container e si applicano a singoli utenti o a gruppi di sicurezza (non alle OU). La proprietà MinPasswordLength accetta valori fino a 255.

Creazione con ADAC (GUI)

  1. Apri Active Directory Administrative Center (ADAC).
  2. Vai a System → Password Settings Container.
  3. Dal menu New, seleziona Password Settings.
  4. Compila i parametri principali:
    • Precedence: 1 (numero più basso = precedenza più alta).
    • Minimum password length: 15 o più.
    • Imposta allineamento con le tue policy (complexity, history, lockout, max/min age).
  5. Nella sezione Directly Applies To, aggiungi il gruppo di destinazione (consigliato un gruppo pilota). In seguito, potrai estendere a Domain Users o a gruppi più ampi.
  6. Salva e attendi la replica AD.

Creazione con PowerShell

Apri una console con moduli RSAT e diritti adeguati:

# Crea una policy fine-grained da 15 caratteri
New-ADFineGrainedPasswordPolicy `
  -Name "Pwd-15" `
  -Precedence 1 `
  -MinPasswordLength 15 `
  -PasswordHistoryCount 24 `
  -MinPasswordAge 1.00:00:00 `
  -MaxPasswordAge 90.00:00:00 `
  -ComplexityEnabled $true `
  -ReversibleEncryptionEnabled $false `
  -LockoutThreshold 10 `
  -LockoutObservationWindow 00:15:00 `
  -LockoutDuration 00:15:00

Applica la PSO a un gruppo pilota

Add-ADFineGrainedPasswordPolicySubject -Identity "Pwd-15" -Subjects "GG-Pilot-Users"

(opzionale) Estendi poi al gruppo Domain Users

Add-ADFineGrainedPasswordPolicySubject -Identity "Pwd-15" -Subjects "Domain Users"

Verifica la PSO risultante su un utente

Get-ADUserResultantPasswordPolicy -Identity "m.rossi" | Format-List *

Precedenza, conflitti e scoping

  • Numeri più bassi vincono: se un utente è soggetto a più PSO, la Precedence più bassa è quella effettiva.
  • Scoping a gruppi: i PSO si applicano a utenti o a gruppi di sicurezza (globali/universali). Non funzionano se assegnati a OU.
  • Eccezioni: crea PSO specifici (precedence più bassa) per account di servizio che non possono ancora rispettare 15+ e applicali solo a quei gruppi.

Verifiche e diagnostica

# Elenco PSO
Get-ADFineGrainedPasswordPolicy -Filter * |
  Select-Object Name, Precedence, MinPasswordLength | Sort-Object Precedence

Che policy vede davvero l'utente?

Get-ADUserResultantPasswordPolicy -Identity "m.rossi"

Utenti a cui si applica un dato PSO

Get-ADFineGrainedPasswordPolicySubject -Identity "Pwd-15"

Abilita l’audit prima dell’enforcement

Prima di imporre il nuovo requisito, accendi l’audit per intercettare cambi e reset che proverebbero a impostare password più corte di 15. Quando disponibile sui DC (build recenti), usa la policy Minimum password length audit con valore 15. Gli eventi vengono registrati nel log Directory‑Services‑SAM con Event ID 16978 e ti indicano chi/che cosa fallirebbe dopo l’innalzamento.

Esempio di raccolta eventi su un DC:

$filter = @{ LogName='Directory Service'; Id=16978; StartTime=(Get-Date).AddDays(-7) }
Get-WinEvent -FilterHashtable $filter |
  Select TimeCreated, Id, LevelDisplayName, Message |
  Format-Table -Auto

Se non hai il criterio di audit disponibile (DC 2016/2019), puoi simulare l’impatto con campagne di cambio password assistite e monitoraggio dei ticket di help desk prima del giro di vite definitivo.

Compatibilità, impatti e buone pratiche

  1. Uniformità di versione: sul percorso A, tutti i DC (inclusi RODC e siti remoti) devono supportare i nuovi criteri, altrimenti otterrai enforcement non coerente.
  2. Account esistenti: l’aumento della lunghezza minima non invalida password già impostate; si applica al prossimo cambio/reset.
  3. Service account: migra dove possibile a Group Managed Service Accounts (gMSA). Per gli altri, prevedi un PSO di eccezione transitorio.
  4. Client legacy & protocollo: l’innalzamento della lunghezza minima non rompe i client supportati. Evita LM/NTLMv1; preferisci Kerberos/NTLMv2.
  5. Allineamento con LAPS: se usi Windows/Entra ID LAPS, adegua la lunghezza password locale admin per non scendere sotto il nuovo standard.
  6. Formazione utenti: suggerisci passphrase (es. tre/quattro parole) e l’uso di password manager. La lunghezza è più efficace della sola complessità arbitraria.

Playbook di implementazione consigliato

  1. Week 1 — Inventario & audit: raccogli versioni DC, verifica livello funzionale, accendi l’audit (se disponibile) e monitora gli eventi 16978. Identifica sistemi sensibili/legacy.
  2. Week 2 — Pilota FGPP: crea PSO 15+ e applicalo a un gruppo pilota (5–10% popolazione). Monitora impatti e help desk.
  3. Week 3 — Estensione: includi gruppi estesi o Domain Users. Prepara eccezioni puntualissime con PSO dedicati.
  4. Week 4 — Enforcement globale: imposta 15+ in DDP (se sei sul percorso A) oppure completa la copertura via PSO. Comunica la data di cut‑over con 7–10 giorni di anticipo.
  5. Week 5 — Hardening extra: rivedi lockout, history, max age. Disabilita account inattivi e valuta password filter/banlist aziendale.

Confronto: Default Domain Policy vs FGPP

AspettoDefault Domain Policy (percorso A)FGPP/PSO (percorso B)
PrerequisitiDC aggiornati (v2004+/2022/2025) + Relax abilitatoNessun upgrade OS richiesto (livello funzionale 2008+)
Range lunghezza0–128 (con Relax)1–255
GranularitàUnica policy di dominioPer gruppi/utenti con precedenza
ComplessitàSemplicePiù flessibile (es. eccezioni controllate)
RischiEnforcement incoerente se anche un solo DC non è allineatoScoping sbagliato o precedenze invertite → policy inattesa

Troubleshooting: problemi comuni e soluzioni

  • “Il campo rimane a 0–14 anche dopo l’aggiornamento” — Verifica di aver abilitato Accounts: Relax minimum password length limits nella GPO che si applica ai DC. Forza gpupdate e controlla l’RSOP sui DC.
  • “Il PSO non viene applicato al gruppo” — Assicurati che il gruppo sia di sicurezza (non distribuzione), replica completata, e che non esista un altro PSO con precedence più bassa che cattura gli stessi utenti.
  • “Un utente resta fuori dai 15+” — Controlla la policy risultante: Get-ADUserResultantPasswordPolicy -Identity "utente" Se restituisce $null, significa che si applica la DDP e non c’è alcun PSO per l’utente.
  • “Dopo il cut‑over compaiono molti lockout” — Allinea job/servizi che cambiano password. Valuta di mitigare temporaneamente la soglia di lockout e pianifica re‑enrolment credenziali su app legacy.
  • “Come torno indietro?” — Percorso A: riportare il valore a 8–12 (temporaneo) nella DDP e mantenere Relax attivo. Percorso B: rimuovere l’associazione del PSO o abbassare MinPasswordLength. In entrambi i casi, comunica il rollback e monitora.

Governance e security engineering

Stabilire una lunghezza minima a 15 caratteri è oggi una misura efficace, allineata alle migliori pratiche moderne che privilegiano la robustezza per entropia (lunghezza) rispetto a combinazioni arbitrarie di caratteri. Integra il requisito con:

  • Password manager aziendale e formazione all’uso di passphrase.
  • Password banlist (blocca password comuni e varianti). Puoi integrarla tramite filtri di password o soluzioni di protezione password per AD.
  • Revisione periodica dei criteri: le minacce evolvono; mantieni aggiornati valori e strumenti di audit.

Checklist operativa pronta all’uso

  • [ ] Elenca e classifica tutti i DC (OS/build, RODC inclusi).
  • [ ] Verifica livello funzionale di dominio ≥ 2008.
  • [ ] Identifica account di servizio e applicazioni critiche.
  • [ ] Attiva audit (se disponibile) e analizza eventi 16978.
  • [ ] Definisci timeline e stakeholder (IT Ops, SecOps, Help Desk).
  • [ ] Percorso A: abilita Relax sui DC, imposta 15 in DDP, replica, verifica.
  • [ ] Percorso B: crea PSO 15+, applica a pilota, poi estendi a gruppi target.
  • [ ] Comunica agli utenti linee guida e data di enforcement.
  • [ ] Monitora lockout, ticket e incidenti nelle due settimane successive.

Appendice: comandi utili

# Stato criteri dominio (da un membro del dominio)
net accounts /domain

Policy di dominio correnti via PowerShell

(Get-ADDefaultDomainPasswordPolicy) | Format-List *

Modifica rapida della DDP (solo su percorso A con Relax attivo)

Set-ADDefaultDomainPasswordPolicy -MinPasswordLength 15 `  -PasswordHistoryCount 24`
-ComplexityEnabled $true `  -MinPasswordAge 1.00:00:00`
-MaxPasswordAge 90.00:00:00

Forza replica dopo cambiamento critico

repadmin /syncall /AdeP

Verifica applicazione GPO sui DC

gpresult /r /scope computer

FAQ sintetica

Portare la lunghezza minima a 15 rompe i client vecchi?
No, il requisito viene valutato dai DC al momento del cambio/reset password. I client supportati negoziano correttamente i protocolli moderni (Kerberos/NTLMv2). Il punto critico è che tutti i DC applichino coerentemente la policy.

Le password correnti <15 vengono bloccate?
No, continuano a funzionare finché non vengono cambiate o resettate.

Meglio DDP o FGPP?
La DDP è semplice e uniforme, ma richiede DC aggiornati. Le FGPP sono ideali se non puoi aggiornare o se vuoi gestire eccezioni/gradualità.

Posso assegnare un PSO a un’OU?
No. I PSO si applicano a utenti e gruppi di sicurezza. Per gestire aree organizzative, usa gruppi che riflettano la membership dell’OU.

Qual è il limite massimo con FGPP?
Fino a 255 caratteri per MinPasswordLength.

In sintesi

  • Su DC Windows Server 2016/2019 l’editor della DDP resta bloccato a 14: è un limite dell’interfaccia, non di AD.
  • Se puoi aggiornare i DC, abilita Accounts: Relax minimum password length limits e imposta 15+ direttamente in DDP.
  • Se resti su 2016/2019, usa le FGPP/PSO per impostare MinPasswordLength a 15 (o più) e applicarle per gruppi/utenti.
  • Accendi l’audit prima dell’enforcement e monitora l’evento 16978 (Directory‑Services‑SAM) per scovare impatti nascosti.
  • Evita hack di registro: non sono supportati e introducono rischio operativo.

Modello di comunicazione agli utenti (riutilizzabile)

Oggetto: Aggiornamento policy aziendale – nuova lunghezza minima password

Dal [data], la lunghezza minima delle password del dominio sarà di 15 caratteri. Le password esistenti non smetteranno di funzionare, ma al prossimo cambio dovranno rispettare il nuovo requisito. Suggeriamo di creare una passphrase composta da più parole (es. quattro parole separate da spazi). Per assistenza: [canale help desk].


Esempio di piano di eccezioni temporanee con PSO

  1. Crea un gruppo GG‑Pwd‑Legacy‑Exceptions.
  2. Crea un PSO Pwd‑14‑Temp (Precedence 0 o 1, MinPasswordLength 14).
  3. Applica il PSO al gruppo di eccezione e rimuovi gli utenti quando le app vengono adeguate.
  4. Monitora e dismetti il PSO entro una data certa.

Controlli post‑implementazione (SLA 30 giorni)

  • Trend ticket password reset e lockout > baseline.
  • Nessun DC con GPO “Relax” disabilitata (percorso A).
  • Copertura PSO ≥ 95% utenza (percorso B) e nessun PSO “shadow” con precedence errata.
  • Report di compliance firmato da IT Sec e IT Ops.

Conclusione

Portare la lunghezza minima a 15 caratteri nel dominio è oggi un traguardo accessibile e altamente raccomandato. La scelta tra DDP “sbloccata” e FGPP dipende dalla tua capacità di aggiornare i DC e dal bisogno di granularità. Con audit preventivo, pilota controllato e un piano di comunicazione chiaro, puoi adottare 15+ senza sorprese e con pieno allineamento alle migliori pratiche di sicurezza.

Indice