Vuoi consentire a un gruppo di lavoro di creare nuovi GPO e gestirne il collegamento esclusivamente in una singola OU, senza espandere i privilegi sul resto del dominio? In questa guida pratica trovi il metodo con GPMC/ADUC e PowerShell, con controlli, best practice, script e checklist.
Scenario e obiettivo
Obiettivo: delegare a un gruppo di utenti la possibilità di creare nuovi Group Policy Object (GPO) e di collegarli/scollegarli a una sola Organizational Unit (OU). In questo modo il team può lavorare in autonomia sulla propria area, mantenendo la sicurezza del resto dell’infrastruttura Active Directory.
Questa delega si basa su due permessi distinti e indipendenti: uno agisce sul contenitore di dominio dove “nascono” i GPO, l’altro agisce sulla specifica OU dove i GPO vengono collegati. Separare i due consente un principio di least privilege rigoroso.
Concetti fondamentali
Azione | Dove avviene | Permesso da delegare |
---|---|---|
Creare un nuovo GPO | Contenitore “Group Policy Objects” a livello di dominio | Create GPOs (LDAP: Create groupPolicyContainer objects) |
Collegare / scollegare un GPO a un’OU | Sulla OU interessata | Manage Group Policy links (scrittura su gPLink e gPOptions ) |
Nota chiave: un GPO non nasce dentro l’OU. Viene creato nel contenitore di dominio (CN=Policies,CN=System,…) e solo dopo viene linkato all’OU (anche a più OU). Questa distinzione spiega perché servono due deleghe.
Prerequisiti e contesto
- Console Group Policy Management (GPMC) e Active Directory Users & Computers (ADUC) disponibili (su un Domain Controller o via RSAT).
- Un gruppo di sicurezza di dominio dedicato (es.
CONTOSO\GPO-Editors-Vendite
) a cui delegare i permessi. - Accesso con un account che abbia i diritti per delegare (tipicamente Domain Admin).
- Nome distinto e DN della OU destinataria (es.
OU=Vendite,DC=contoso,DC=com
).
Perché servono due deleghe separate
La creazione del contenitore GPO (oggetto groupPolicyContainer
in AD) richiede diritti sul nodo “Group Policy Objects” del dominio. Il collegamento del GPO a una OU, invece, modifica gli attributi gPLink
e gPOptions
della OU. Chi sa creare GPO non per forza può linkarli; chi può gestire i link di una OU non per forza può creare nuovi GPO. Separando questi permessi riduci l’area d’impatto e rispetti il principio del need-to-know.
Procedura con GPMC/ADUC (GUI)
Abilitare la creazione di GPO (sul contenitore “Group Policy Objects”)
- Apri Group Policy Management Console (GPMC).
- Espandi Forest ▸ Domains ▸ <dominio> e seleziona Group Policy Objects.
- Vai alla scheda Delegation → Advanced… → Add… e aggiungi il gruppo (es.
GPO-Editors-Vendite
). - Concedi il permesso Create GPOs (corrisponde a “Create groupPolicyContainer objects”).
Variante equivalente: invece di assegnare “Create GPOs” direttamente sul contenitore, puoi aggiungere gli utenti al gruppo integrato Group Policy Creator Owners, che conferisce la stessa capacità a livello di dominio. Valuta però la sezione “Pro/Contro” più avanti.
Abilitare la gestione dei link nella OU desiderata
- Apri Active Directory Users & Computers (ADUC) oppure GPMC.
- Click destro sulla OU target → Delegate Control….
- Procedi con il wizard, seleziona il gruppo e, tra i Common Tasks, spunta Manage Group Policy links.
- Completa la delega. Il permesso vale solo per quell’OU (e, se spunti l’opzione, può essere ereditato alle sotto-OU).
Che cosa può fare il gruppo dopo la delega
- Nel nodo Group Policy Objects della GPMC: Nuovo → GPO.
- Sulla OU delegata: Link an Existing GPO, Unlink, modifica ordine dei link, abilitazione/disabilitazione link, opzione Enforced e (salvo restrizioni mirate) Block Inheritance.
Variante: usare “Group Policy Creator Owners”
Aggiungendo gli utenti al gruppo integrato Group Policy Creator Owners ottieni il diritto di creare GPO a livello di dominio. Pro: rapido, standard, facilmente gestibile. Contro: è comunque un diritto “globale” alla creazione di GPO nel dominio; inoltre, per default, solo il creatore del GPO ottiene pieno controllo su quel GPO, non automaticamente l’intero gruppo. Se vuoi che un gruppo gestisca collettivamente i GPO creati da qualunque suo membro, aggiungi un passaggio post‑creazione (vedi più avanti “Allineare i permessi sui nuovi GPO”).
Procedura equivalente via PowerShell (facoltativa ma consigliata)
I cmdlet del modulo GroupPolicy e lo strumento dsacls
consentono di automatizzare deleghe e operazioni ripetitive.
Delegare la creazione di GPO con DSACLS
Sostituisci contoso.com
, il DN e il nome del gruppo secondo il tuo ambiente.
:: Concede "Create Child" di oggetti groupPolicyContainer sul contenitore dei GPO
dsacls "CN=Policies,CN=System,DC=contoso,DC=com" /G "CONTOSO\GPO-Editors-Vendite:CC;groupPolicyContainer"
Delegare la gestione dei link nella OU
:: Concede scrittura su gPLink (gestione link GPO)
dsacls "OU=Vendite,DC=contoso,DC=com" /G "CONTOSO\GPO-Editors-Vendite:WP;gPLink"
\:: (Opzionale) Concede scrittura su gPOptions (consente anche Block Inheritance)
dsacls "OU=Vendite,DC=contoso,DC=com" /G "CONTOSO\GPO-Editors-Vendite\:WP;gPOptions"
Nota: il wizard “Manage Group Policy links” di solito assegna entrambi. Se vuoi impedire che il gruppo possa attivare Block Inheritance, non concedere gPOptions
(o rimuovilo manualmente dai permessi avanzati della OU).
Creare, delegare e linkare un nuovo GPO
Import-Module GroupPolicy
Parametri ambiente
\$Dom = "contoso.com"
\$OuDN = "OU=Vendite,DC=contoso,DC=com"
\$Group = "CONTOSO\GPO-Editors-Vendite"
\$Gpo = "GPO - Vendite - Baseline"
Creazione GPO (richiede "Create GPOs")
New-GPO -Name \$Gpo -Comment "Creato dal gruppo delegato" -Domain \$Dom | Out-Null
Allineamento permessi: consente al GRUPPO di modificare (non solo al singolo creatore)
Set-GPPermission -Name \$Gpo -TargetType Group -TargetName \$Group -PermissionLevel GpoEditDeleteModifySecurity
Collegamento del GPO alla OU (richiede "Manage Group Policy links" sulla OU)
New-GPLink -Name \$Gpo -Target \$OuDN -LinkEnabled Yes
Verifica operativa
- Accedi alla GPMC con un utente membro del gruppo delegato.
- Nel nodo Group Policy Objects: verifica la presenza di Nuovo → GPO e crea un GPO di prova.
- Nella OU delegata: verifica di poter eseguire Link an Existing GPO e Unlink, e di poter modificare l’ordine dei link.
- Tenta le stesse azioni su OU non delegate: devono fallire.
Allineare i permessi sui nuovi GPO (evitare “isole” per creatore)
Per impostazione predefinita, il creatore di un GPO ottiene pieno controllo su quel GPO. Se lavori con un gruppo, questo comportamento genera silos: i GPO creati da Alice non sono automaticamente modificabili da Bob. Due strategie:
- Processo operativo: chi crea un GPO esegue subito
Set-GPPermission
per assegnare al gruppo “GPO-Editors-…” il livello GpoEditDeleteModifySecurity (vedi script sopra). - Revisione periodica: un job ricorsivo che scorre tutti i GPO e garantisce che il gruppo possieda sempre i permessi desiderati (utile anche per rimediare alle dimenticanze).
# Allinea i permessi del gruppo su tutti i GPO del dominio
Import-Module GroupPolicy
$Group = "CONTOSO\GPO-Editors-Vendite"
Get-GPO -All | ForEach-Object {
try {
Set-GPPermission -Guid $_.Id -TargetType Group -TargetName $Group -PermissionLevel GpoEditDeleteModifySecurity -ErrorAction Stop
} catch {
Write-Host "Permessi già a posto su $($_.DisplayName) o non modificabili da questo account."
}
}
Sicurezza: cosa include realmente “Manage Group Policy links”
Questo diritto consente di:
- aggiungere/rimuovere collegamenti (scrivere l’attributo
gPLink
); - modificare l’ordine dei link e lo stato Enforced dei singoli collegamenti (parte dei dati in
gPLink
); - se concesso anche
gPOptions
, attivare o disattivare Block Inheritance per la OU.
Se la tua policy interna vieta l’uso di Block Inheritance al team delegato, assegna solo gPLink
(scrittura) e non gPOptions
. Evita regole di Deny non necessarie: sono difficili da diagnosticare e prevalgono sui consensi.
Buone pratiche
- Separazione dei ruoli: “creare” e “linkare” sono permessi distinti: assegna solo ciò che serve al gruppo.
- Ambiente di test: prova la delega su un DC di laboratorio o in una OU non critica prima di passare alla produzione.
- Audit e tracciamento: attiva la categoria Directory Service Changes e monitora gli eventi relativi a creazione GPO, modifica link e sicurezza dei GPO.
- Naming convention: usa prefissi coerenti (es.
GPO [Area]-[OU]-[Scopo]
) per facilitare ricerche e report. - Documentazione: per ogni GPO specifica scopo, owner, ambito di applicazione e dipendenze (WMI filter, item‑level targeting, ecc.).
- Revisione periodica: riesamina trimestralmente i permessi sul contenitore GPO e sulle OU critiche.
- Evita privilegi eccessivi: se un utente è anche Domain Admin, la delega è irrilevante: erediterà comunque pieni diritti.
Troubleshooting
“Nuovo → GPO” non è disponibile
- Controlla che la delega “Create GPOs” sia effettivamente assegnata sul nodo Group Policy Objects (GPMC ▸ Delegation ▸ Advanced).
- Verifica la replica AD tra i DC (la delega appena configurata potrebbe non essere ancora arrivata).
- Assicurati di essere nel dominio corretto (in ambienti multi‑dominio, il diritto va assegnato per ciascun dominio).
“Link an Existing GPO” fallisce sulla OU delegata
- Controlla che la delega sulla OU includa Manage Group Policy links (scrittura su
gPLink
). - Se il gruppo non ha
gPOptions
, non potrà attivare/disattivare Block Inheritance (comportamento atteso).
Non riesco a modificare un GPO creato da un collega
- È il comportamento standard: il creatore ha pieni diritti sul suo GPO. Esegui
Set-GPPermission
per concedere al gruppo i diritti completi su quel GPO, o applica lo script di allineamento.
GPO visibili ma impostazioni non applicate ai client
- Verifica la Security Filtering del GPO e l’appartenenza dei computer/utenti alle relative ACL di applicazione (es. Authenticated Users o gruppi specifici con “Apply Group Policy”).
- Controlla l’ordine dei link e lo stato Enforced dei GPO a monte.
- Controlla eventuali WMI filter che limitano l’applicazione.
Check di conformità (rapido)
- Creazione GPO consentita solo: sì — al gruppo delegato nel dominio corretto.
- Gestione link consentita solo: sì — sulla OU delegata (e sotto‑OU se previsto).
- Modifica permessi GPO: il gruppo ha “Edit, delete, modify security” su ogni GPO che deve gestire.
- Blocchi non desiderati: nessun permesso di scrittura su
gPOptions
se non consentito dalla policy interna. - Audit: logging abilitato e verificato.
Esempi pratici di configurazione
Delegare via GUI con massima granularità
- GPMC → Group Policy Objects → Delegation ▸ Advanced → Add gruppo → spunta Create GPOs.
- ADUC → tasto destro su OU target → Delegate Control… → aggiungi gruppo → spunta Manage Group Policy links.
- (Opzionale) ADUC → Proprietà OU → Security ▸ Advanced → modifica l’ACE del gruppo per rimuovere la scrittura su
gPOptions
.
Delegare solo “gPLink” (senza “gPOptions”) via dsacls
dsacls "OU=Vendite,DC=contoso,DC=com" /G "CONTOSO\GPO-Editors-Vendite:WP;gPLink"
Questo consente di aggiungere/scollegare GPO e gestire l’ordine link ma non permette di attivare Block Inheritance sulla OU.
Domande frequenti
Posso limitare la creazione di GPO a una sola OU?
No: un GPO è un oggetto di dominio, non di OU. Puoi limitare dove il gruppo può linkare i GPO (la tua OU) ma la creazione avviene sempre nel contenitore di dominio “Group Policy Objects”.
Il gruppo può collegare lo stesso GPO a più OU?
Sì, ma solo alle OU dove possiede il diritto Manage Group Policy links. In questo articolo lo limitiamo a una OU specifica.
Serve anche la delega per i WMI filter?
Se il team deve creare o modificare WMI filter, valuta una delega separata sul contenitore WMI in CN=System
. Non è obbligatoria per il solo linking di GPO a una OU.
In una foresta con più domini?
Ripeti la delega per ogni dominio dove i team devono operare. I GPO sono per‑dominio; non puoi collegare un GPO del dominio A a una OU del dominio B.
Strategia di rollback
Se devi revocare la delega:
- GPMC → Group Policy Objects → Delegation ▸ Advanced → rimuovi il gruppo (o togli “Create GPOs”).
- ADUC → OU target → Security → rimuovi l’ACE del gruppo (o esegui
dsacls /R
per rimuovere i grant specifici). - (Opzionale) Esegui uno script per rimuovere le deleghe dal singolo GPO se avevi assegnato diritti al gruppo tramite
Set-GPPermission
.
Riepilogo operativo
- Delegare “Create GPOs” sul contenitore “Group Policy Objects”.
- Delegare “Manage Group Policy links” sulla OU desiderata (solo
gPLink
se vuoi evitare Block Inheritance). - Allineare i permessi sui GPO appena creati, così che l’intero gruppo possa modificarli, non solo il creatore.
- Verificare con un utente del gruppo che le operazioni consentite e vietate corrispondano allo scopo.
Esempio completo — passo‑passo sintetico
- Crea il gruppo di delega (es.
GPO-Editors-Vendite
). - Concedi “Create GPOs” sul nodo “Group Policy Objects”.
- Concedi “Manage Group Policy links” sulla OU
OU=Vendite
(eventualmente limitandoti agPLink
). - Con un utente del gruppo: crea GPO – Vendite – Baseline, assegna al gruppo “Edit, delete, modify security”, linkalo alla OU.
- Verifica: link e unlink funzionano sulla OU delegata ma non sulle altre; la creazione GPO è possibile; il gruppo intero può modificare i GPO.
Note supplementari e rischi da evitare
- Enforced e ordine: chi gestisce i link può influire sull’ordine di applicazione. Prevedi linee guida per l’ordinamento.
- Block Inheritance: se non governato, può far saltare configurazioni attese. Valuta di non delegare
gPOptions
. - Oggetti critici: non delegare mai su OU che contengono DC o unità altamente sensibili senza un change control stretto.
- Change management: se possibile, usa strumenti come controllo versioni dei GPO (Starter GPO, backup periodici) e approvazioni.
Con questa configurazione il gruppo potrà creare GPO e gestirne il collegamento unicamente nell’OU specificata, mantenendo la sicurezza e la governabilità del dominio.
Appendice tecnica: mappature LDAP e attributi
Elemento | DN / Attributo | Note |
---|---|---|
Contenitore GPO | CN=Policies,CN=System,DC=<dominio> | Qui risiedono gli oggetti groupPolicyContainer (GPC) dei GPO. |
Permesso “Create GPOs” | ACE: Create Child su classe groupPolicyContainer | Consente la creazione di nuovi GPO (GPC) nel dominio. |
Gestione link | Attributo gPLink su OU | Lista dei GPO linkati, con opzioni per ciascun link (es. Enforced). |
Opzioni OU | Attributo gPOptions | Include flag come Block Inheritance per la OU. |
Appendice: comandi rapidi
:: Concede la creazione GPO nel dominio
dsacls "CN=Policies,CN=System,DC=contoso,DC=com" /G "CONTOSO\GPO-Editors-Vendite:CC;groupPolicyContainer"
\:: Concede gestione link (senza gPOptions) sulla OU
dsacls "OU=Vendite,DC=contoso,DC=com" /G "CONTOSO\GPO-Editors-Vendite\:WP;gPLink"
\:: (Opzionale) Concede gPOptions se consentito dalla policy interna
dsacls "OU=Vendite,DC=contoso,DC=com" /G "CONTOSO\GPO-Editors-Vendite\:WP;gPOptions"
\:: Creazione, delega e collegamento GPO (PowerShell)
Import-Module GroupPolicy
\$Gpo = "GPO - Vendite - Baseline"
\$Dom = "contoso.com"
\$OuDN = "OU=Vendite,DC=contoso,DC=com"
\$Group = "CONTOSO\GPO-Editors-Vendite"
New-GPO -Name \$Gpo -Domain \$Dom -Comment "Creato dal gruppo delegato" | Out-Null
Set-GPPermission -Name \$Gpo -TargetType Group -TargetName \$Group -PermissionLevel GpoEditDeleteModifySecurity
New-GPLink -Name \$Gpo -Target \$OuDN -LinkEnabled Yes
Conclusione
La chiave per una delega sicura e sostenibile in Active Directory è trattare la creazione dei GPO e la gestione dei link come privilegi separati, assegnandoli con precisione dove servono. Con i passaggi illustrati — GUI, dsacls e PowerShell — puoi costruire un processo di lavoro che garantisca autonomia al team responsabile della OU, mantenendo al tempo stesso la governance centrale del dominio.
Checklist finale
- Gruppo dedicato creato e popolato.
- “Create GPOs” concesso sul contenitore GPO.
- “Manage Group Policy links” concesso sulla OU (valutando l’esclusione di
gPOptions
). - Procedura/Script per assegnare al gruppo i permessi su ogni nuovo GPO.
- Audit attivo e revisione periodica dei permessi.