Zadání: AD 2003 doména s uživatelskými počítači, uživatelskými účty a několika terminal servery. Je stanovena GPO na úrovni domény a další GPO na úrovni OU s počítači a na úrovni OU s uživatelskými účty. Žádoucí je změnit nastavení Terminal serverů, ke kterým se uživatel hlásí a přitom neovlivnit nastavení uživatele na jiných serverech.
Tohle je typický příklad, kdy příjde ke slovu GPO loopback processing (šílený český překlad zní "Režim zpracování duplicitních zásad skupiny uživatele). Úlohou bylo vypnout automatickou aktivaci šetřiče obrazovky, který se po 10 minutách automaticky spouštěl v každém TS spojení. Tohle by ani tak nevadilo jako spíš fakt, že šetřič byl zamknutý a tudíž bylo nutné zadávat každou chvíli jméno a heslo. Ukázalo se, že nastavení nepochází z žádné GPO, ale že jde o implicitní nastavení Windows Serveru 2003.
A nyní nastává problém - pokud bych vytvořil GPO na úrovni Site, Domain či OU, v níž jsou uživatelské účty, ovlivním chování v celé doméně na všech počítačích. To nebylo žádoucí. Computer settings v GPO neobsahují část Desktop, v níž by bylo možné přiřadit chování šetřiče obrazovky všem uživatelům, neboť se jedná o nastavení, které je pouze součástí User settings. Windows AD od verze 2000 však v sobě naštěstí obsahuje mechanismus, jak takové případy vyřešit a aplikovat User settings v závislosti na umístění počítače, na nějž se uživatel loguje.
Prvním krokem je vytvoření OU obsahující pouze Terminal servery. Na tuto OU bude přilinkována nová GPO. Ta v sobě bude zahrnovat jak Computer settings, tak User settings. V Computer settings bude aktivován GPO loopback processing v módu Replace a další nastavení týkající se role terminal serveru. V User settings pak budou uloženy nastavení, která se mají aplikovat jen a pouze při připojení uživatelů na servery, jež jsou umístěny v dané OU.
Po nastavení všeho potřebného stačí se přihlásit na každý terminal server, zaktualizovat politiky pomocí gpupdate a odzkoušet výsledný efekt. Výpis dané GPO může v nástroji Group Policy Management vypadat třeba takto:
Dobrý výklad a příklady nasazení jsem našel na stránkách Stanford University - http://windows.stanford.edu/docs/gpoorder.htm. Tu nejdůležitější tabulku si dovoluji uvést i zde:
Normal mode |
Loopback: Merge mode |
Loopback: Replace mode |
GPOs assigned to local machine during boot (Computer sections of the policy) Local Machine Policy Site GPOs [S] Domain GPOs [C] OU GPOs [P1,P2,M1] |
GPOs assigned to local machine during boot (Computer sections of the policy) Local Machine Policy Site GPOs [S] Domain GPOs [C] OU GPOs [P1,P2,M1] |
GPOs assigned to local machine during boot (Computer sections of the policy) Local Machine Policy Site GPOs [S] Domain GPOs [C] OU GPOs [P1,P2,M1] |
GPOs assigned to user during logon (User sections of the policy)
Local Machine Policy |
GPOs assigned to user during logon (User sections of the policy)
Local Machine Policy {From Computer location} |
GPOs assigned to user during logon (User sections of the policy)
Local Machine Policy |
V mém případě nebylo třeba využít módu Merge, který by jen zbytečně zatěžoval, ale postačovalo zvolit Replace. Loopback processing je dobrá věc, s jeho používáním však opatrně, neboť se dá velmi snadno aplikace politik tak zašmodrchat, že hledat poté problém je hodně komplikované. Pokud je více variant, jak dané GPO nastavení provést, volil bych loopback processing až na posledním místě.
Doplnění 19.12.2009
Během přípravy na MCP zkoušku W2008 Enterprise Administrator jsem našel další dobrou stránku, která detailně vysvětluje problematiku loopback processing. Je to http://grouppolicy.editme.com/Loopback.