Fin dal rilascio di Windows Server 2000, la funzionalità Group Policy Object (GPO) ha permesso agli amministratori di rete di poter configurare in maniera centralizzata i computer della propria organizzazione. Infatti, in un ambiente di lavoro che è completamente gestito da un’ infrastruttura basata sulle Group Policy, l’amministratore non ha bisogno di configurare singolarmente i computer e le impostazioni gli utenti.
Le Group policy possono essere associate ad un intero sito di Active Directory, al dominio oppure possono essere associate alle singole Organizational Unit (OU).
Tantissimo è stato scritto in questi anni a proposito delle GPO e quello che mi propongo di scrivere in questa breve guida è rispondere alle domande più frequenti che sono venuti fuori durante i miei corsi.
Le Group Policy sono un potentissimo strumento che permette di poter imporre le configurazioni sia agli utenti che ai computer, in particolar modo configurazioni che riguardano la sicurezza, le applicazioni desktop, la gestione e la distribuzione del software e le configurazioni relative alla rete.
In particolar modo, gli Administrative Templates delle GPO modificano chiavi di registro di Windows, sia nel ramo utente che nel ramo computer, che contengono la parola Policies.
Figura 1: Le Group Policy modificano le chiavi registro di Windows
Gestione delle Group Policy: console e tools
Per gestire le Group policy abbiamo a disposizione alcune console come la Group Policy Management Console e il Group Policy Management Editor. Ma ci sono anche diversi strumenti a riga di comando come GPUpdate e GPResult
Figura 2: Strumenti per la gestione delle Group Policy: Group Policy Management Console e Group Policy Editor
Figura 3: Risultato dell’esecuzione del comando gpresult
Applicazione delle Group Policy
Uno dei vantaggi delle Group Policy è che vengono applicate in background senza l’intervento dell’amministratore e vengono riapplicate in maniera automatica ogni 5 minuti per i domain controller e ogni 90 minuti + 30 minuti per i computer del dominio. L’impostazione è modificabile cambiando i valori del ramo Computer Configuration à Policies à Administrative Templates à System à Group Policy e configurando le due policy Set Group Policy refrsh interval for domain controllers e Set Group Policy refrsh interval for computers
Figura 4: Configurazione degli intervalli di refresh delle GPO per i computer e per i domain controller
Administrative Templates
Come già scritto prima, gli Administrative Templates delle Group Policy modificano i rami del registro computer HKEY_LOCAL_MACHINE e dell’utente HKEY_CURRENT_USER. Questi file, originariamente creati in formato .ADM e successivamente in Windows Server 2008 creati in formato .ADMX, permettono di configurare un notevole numero di parametri del sistema operativo, ma anche di alcuni applicativi. Infatti è possibile aggiungere ulteriori administrative templates alle nostre group policy per poter configurare in ambiente enterprise prodotti come Microsoft Office, Adobe Acrobat Reader, Google Chrome, Mozilla Firefox e tanti altri. Dopo essersi procurati sul sito del produttore dell’applicativo i diversi file ADMX, è sufficiente copiarli nella cartella C:\Windows\PolicyDefinitions del domain controller.
Se, ad esempio, volete aggiungere gli Administrative Templates per poter gestire le Microsoft 365 Apps for enterprise, Office 2019 oppure Office 2016, potete scaricarli dal link https://www.microsoft.com/en-us/download/details.aspx?id=49030 . Dopo averli estratti sarà sufficiente copiarli nella cartella C:\Windows\PolicyDefinitions del domain controller. Riaprendo successivamente il Group Policy Editor per qualsiasi GPO, le nuove configurazioni saranno disponibili e potranno essere utilizzate per poter gestire le applicazioni Office, come mostrato nelle figure sotto:
Figura 5: Aggiunta degli Administrative Templates di Office alle policy di dominio
Figura 6: Gestione delle applicazioni Office utilizzando le Group Policy
Come si può vedere dalla figura sopra, gli Administrative Templates sono stati incollati nella cartella C:\Windows\PolicyDefinitions del domain controller e la console ci mostra che sono stati presi dal computer locale (la freccia lo evidenzia nell’immagine). Di default, quando aprite la Group Policy Management Console viene contattato non un domain controller qualsiasi ma quello che ha il ruolo FSMO (Flexible Single Master Operation) di PDC Emulator. Se avete più domain controller, come è giusto che sia, e se sono anche distribuiti in diversi Site di Active Directory, sarà necessario copiare gli Administrative Templates in tutte le cartelle C:\Windows\PolicyDefinitions di tutti i domain controller in modo tale da poterlo configurare da qualsiasi DC e non necessariamente dal DC che ha il ruolo di PDC Emulator. Per ovviare a questa incombenza è possibile utilizzare il Central Store delle GPO, disponibile da Windows Server 2008.
Figura 7: La Group Policy Management Console si collega in maniera predefinita al domain controller con il ruolo di PDC Emulator
Utilizzo del Central Store
Per poter gestire le Group Policy da qualsiasi domain controller e non necessariamente da quello che il ruolo di PDC Emulator, soprattutto se aggiungete Administrative Templates che non sono inclusi in Windows Server, è necessario utilizzare il Central Store delle GPO. Tutta la cartella C:\Windows\PolicyDefinitions di uno dei domain controller deve essere copiata nel percorso \\<nome dominio>\SYSVOL\<nome dominio>\Policies. Va da se che d’ora in poi tutti gli Administrative Templates da aggiungere dovranno essere copiati nella cartella centralizzata della SYSVOL e non più nella cartella locale dei domain controller.
Figura 8: Configurazione del Central Store per le GPO
Come si può vedere dalla figura sotto, Il Group Policy Editor fa riferimento al Central Store per il caricamento e la visualizzazione degli Administrative Templates.
Figura 9: Il Central Store viene utilizzato per caricare gli Administrative Templates
Group Policy Processing order
Quello che spesso sfugge è l’ordine con cui le Group policy vengono applicate all’interno della nostra organizzazione . Infatti, è molto importante considerare l’ordine di precedenza in quanto, nonostante l’applicazione delle configurazioni sia cumulativa, l’ultima policy sovrascriverà la configurazione applicata da una policy precedente:
Ordine di precedenza: Local à Site à Domain à OU à Child OU…
visibile nel tab Group Policy Inheritance della Group Policy Management Console. L’impostazione che vincerà è quella applicate alla Child OU, perchè è stata create appositamente per gestire in maniera diversa gli utenti ed I computer che si trovano in quella OU.
Questo tipo di comportamento, che è quello predefinito, può essere modificato configurando la policy precedente in modalità Enforced e, nel caso vengano configurate le stesse impostazioni, quella che vince è quella applicata a livello più alto. Ripeto infatti che tutte le configurazioni vengono sommate (sono cumulative) e che stiamo solo decidendo il comortamento nel caso in cui due policy diverse vadano a modificare la stessa impostazione.
Figura 10: Group Policy processing order
Si tenga presente che più è basso il numero della precedenza nella scheda Group Policy Inheritance à Più in alto verrà visualizzata la policy nella lista –à La policy più in alto avrà la precedenza
Lower number à Higher on list à Precedence
Figura 11: Esempio di Group Policy Inheritance
L’eredità può anche essere bloccata, cliccando col tasto destro sulla OU e scegliendo Block Inheritance. In questo modo verranno applicate solo le GPO associate a quella OU. Se ci sono delle Child OU, queste invece erediteranno dalla OU padre, a meno che non blocchiate l’ereditarietà anche per loro, agendo singolarmente su ogni OU.
Figura 12: Blocco dell’ereditarietà per una OU
In ogni caso, ricordatevi che se a livello più altro una GPO è Enforced, vincerà sempre. Nella figura sotto si può notare che la Default Domain Policy è stata forzata e viene applicata anche nel caso alla OU chiamata ROMA abbia applicato il blocco dell’ereditarietà.
Figura 13: Enforcement di una GPO in modo tale da impedire le modifiche apportate da una GPO ad un livello più basso, in caso di contrasto
Loopback Processing Mode
Ho già avuto modo di scrivere del Loopback Processing Mode nell’articolo Come funziona il Loopback Processing Mode nelle Group Policy. Molti di voi sapranno già che le Group Policy hanno la possibilità di configurare sia i computer che gli utenti e le configurazioni utente vengono applicate indipendentemente dal computer dove l’utente si logga.
Ci sono casi, tuttavia, dove questo tipo di comportamento potrebbe non andare bene; ad esempio se un utente si logga su un Remote Desktop Session Host (Terminal Server), che è una macchina condivisa da più persone, vorrei evitare che si porti dietro alcune configurazioni.
Per ovviare a questo comportamento di default è necessario abilitare il Loopback Processing mode. Per abilitare il Loopback Processing Mode è necessario configurare la Policy scegliendo Computer Configuration/Administrative Templates/System/Group Policy e modificare il parametro Configure user Group Policy loopback processing mode
Se si abilita questa impostazione, è possibile selezionare una delle modalità seguenti nella casella Modalità:
- “Sostituisci” indica che le impostazioni utente definite negli oggetti Criteri di gruppo del computer sostituiscono le impostazioni utente generalmente applicate all’utente.
- “Unisci” indica che le impostazioni utente definite negli oggetti Criteri di gruppo del computer e le impostazioni utente normalmente applicate all’utente vengono combinate. In caso di conflitto, le impostazioni utente degli oggetti Criteri di gruppo del computer avranno la precedenza sulle impostazioni normali dell’utente.
Se si disabilita o non si configura questa impostazione, gli oggetti Criteri di gruppo dell’utente determineranno le impostazioni utente valide.
Figura 14: Loopback Processing Mode
Group Policy Preferences
Un discorso a parte lo meritano le Group Policy Preferences, introdotte in Windows Server 2008. Tramite le Group Policy Preferences è possibile distribuire e gestire le configurazioni del sistema operativo e degli applicativi, che non possono essere gestiti utilizzando le Group Policy. Alcuni esempi di Group Policy Preferences includono la mappatura dei dischi di rete, la creazione e la configurazione di operazioni pianificate, la creazione di utenti e gruppi locali e la modifica delle chiavi di registro utilizzate dalle applicazioni. La maggior parte delle volte offrono una valida alternativa agli script di logon degli utenti o di startup delle macchine.
Mentre infatti le GPO, grazie agli Administrative Templates, lavorano su chiavi di registro apposite (che contengono il ramo Policies) e che devono essere previste dallo sviluppatore, le Group Policy Preferences modificano le chiavi utilizzate dall’applicazione. Un esempio è ben descritto nell’articolo Gestione centralizzata di Java Virtual Machine in ambienti distribuiti e con l’utilizzo delle Group Policy Preferences
C’è da considerare anche che nonostante le Group Policy Preferences utilizzino lo stesso intervallo di refresh delle classiche Group Policy, non hanno esattamente lo stesso comportamento. Infatti, se scollegate una Group Policy da un Organizational Unit (OU), le configurazioni applicate dalla Group Policy verranno anch’esse rimosse. Invece le configurazioni applicate delle Group Policy Preferences rimarranno e dovranno essere eliminate con uno script oppure con una Group Policy Preferences che faccia l’operazione di rimozione (Delete).
Figura 15: Group Policy Preferences
Figura 16: Operazioni consentite dalle configurazioni delle Group Policy Preferences
Decisamente interessante per quanto riguarda le Group Policy Preferences è la possibilità di poter applicare le configurazioni solo se si verificano determinate condizioni. Utilizzando infatti l’Item-level targenting possiamo decidere le caratteristiche della macchina di destinazione della nostra configurazione, filtrando la lingua, il sistema operativo, il range di indirizzi IP della macchina, lo spazio disco disponibile, la RAM, ecc. come mostrato nella figura sotto:
Figura 17: Configurazione dell’Item-level targeting per la Group Policy Preference
Conclusioni
L’intento di questo articolo è quello di fissare solo alcuni concetti relativi alla Group Policy, che dovranno comunque essere approfonditi. Avere ben chiaro il comportamento e le modalità di applicazione delle GPO sono un ottimo strumento per configyurare ene la nostra infrastruttura e per poter effettuare poi il troubleshooting in maniera corretta nel caso di problematiche.
L'articolo Funzionamento delle Group Policy in Windows Server: facciamo un po’ di chiarezza proviene da ICT Power.