Loopbackverarbeitungsmodus - Loopback Processing Mode

15.01.2013 | Autor: Mark Heitbrink

Loopback processing of Group Policy

Die Situation: Man möchte, daß der Benutzer spezielle Einstellungen, abhängig vom Computer an dem er sich anmeldet, übernimmt. Klassische Beispiele sind in dem Fall: Terminal (Remote Desktop) Server und Notebooks.

Bei einem TS möchte man in der Regel, daß der Benutzer wesentlich restriktiver gehandhabt wird, als wenn er sich an seiner Workstation anmeldet und bei Notebooks ist es oftmals genau  das Gegenteil: Der Benutzer darf mehr, als an seiner festen Workstation. Am Ende kommt es auf die gleiche Situation hinaus. Ich benötige Richtlinien abhängig vom Computer.

Das könnte man heute prima mit einem WMI Filter erreichen, der auf einer an der Benutzer OU verlinkten GPO eingesetzt wird und zB den dnsHostName abfragt. Dummerweise gab es diesen Filter unter Windows 2000 nicht. Deswegen gibt es den Loopback.

Die Herausforderung:
Ich muss die Richtlinie irgendwie auf das Computerkonto anwenden? Aber der Computer ignoriert den Anteil der Benutzerkonfiguration einer Richtlinie, da er ja schliesslich ein Computerobjekt ist und kein Benutzer. Ebenfalls, ist dem anmeldenden Benutzer die Benutzerkonfiguration einer Richtlinien auf dem Computerobjekt egal, da der Benutzer die Computerkonfiguration garnicht liest, und damit am Ende die Richtlinie, nicht übernehmen kann. Es kommt noch hinzu, daß der Benutzer meistens nicht in der OU des Computers steht, damit nicht im Verwaltungsbereich der Richtlinie ist und er somit die GPO generell nicht anwenden kann.

Schauen wir uns die normale Verarbeitung von Richtlinien an.

  • OU "Terminal Server", darin enthalten der Computer
  • verlinktes GPObjekt "TerminalServer Einschränkungen"
    darin enthalten konfigurierte Einstellungen im Bereich Computer~ und Benutzerkonfiguration
  • OU "Meine Benutzer", darin enthalten alle Benutzerkonten
  • verlinktes GPObjekt "Meine Std. Firmenvorgaben"
    nur Einstellungen im Bereich Benutzerkonfiguration

 Ablauf:

  1. Der Computer aus der OU "Terminal Server" liest den Anteil Computerkonfiguration der Richtlinie "TerminalServer Einschränkungen" . 
  2. Der Computer kann als Objekt keine Benutzereinstellungen übernehmen. 
  3. Der Benutzer aus der OU "Meine Firma" liest den Anteil Benutzerkonfiguration der Richtlinie "Meine Std. Firmenvorgaben". Fertig

Jetzt aktiviert man den Loopbackverarbeitungsmodus auf einer beliebigen Richtlinie, die auf den Computer wirkt. Sie sollte als eigene Richtlinie integriert werden, mit nur der einen Policy aktivert. Diese Objekt kann man dann überall dort verlinken, wo es einen Loop geben soll. Die Eigenschaft des Loopback gilt ab der nächsten Übernahme und dem anschliessendem Neustart für alle Richtlinien. Nicht nur für eine spezielle.

Wir erweitern das Beispiel um eine weitere Richtlinie: "Loopbackverarbeitungsmodus aktiviert" 

Computerkonfiguration \ Administrative Vorlagen \ System \ Gruppenrichtlinien
Loopbackverarbeitungsmodus für Benutzergruppenrichtlinie = aktiviert

  • OU "Terminal Server", darin enthalten der Computer
  • verlinktes GPObjekt "Loopbackverarbeitungsmodus aktiviert"
  • verlinktes GPObjekt "TerminalServer Einschränkungen"
  • OU "Meine Benutzer", darin enthalten alle Benutzerkonten
  • verlinktes GPObjekt "Meine Std. Firmenvorgaben"

Neuer Ablauf:

  1. Der Computer aus der OU "Terminal Server" liest den Anteil Computerkonfiguration der Richtlinie "TerminalServer Einschränkungen".
  2. Der Computer aus der OU "Terminal Server" liest den Anteil Computerkonfiguration der Richtlinie "Loopbackverarbeitungsmodus aktiviert".
  3. Der Benutzer aus der OU "Meine Firma" liest den Anteil Benutzerkonfiguration der Richtlinie "Meine Std. Firmenvorgaben"
  4. Der Benutzer aus der OU "Meine Firma" liest den Anteil Benutzerkonfiguration der Richtlinie "TerminalServer Einschränkungen"

Durch den Loop wird eine Schleife (Loopback = Salto rückwärts) bei der Übernahme erzeugt, die den Prozess der Benutzeranmeldung dazu bringt die Liste der Richtlinien des Computerobjekts durchzuschauen. Da nur in diesem speziellen Fall das Benutzerobjekt die Richtlinien des Computers liest und jetzt Benutzerkonfigurationen findet, die es lesen und übernehmen kann, funktioniert der Trick.

In jedem anderen Fall würde kein Benutzer Computerkonfigurationen lesen und kein Computer Benutzerkonfigurationen. Da jedes Mal das "falsche" Ziel angesprochen wird. Durch diese Manipulation können sich natürlich Probleme ergeben, da jetzt mehr Richtlinien auf das Benutzerobjekt angewendet werden, als vorher. Dadurch kann es wieder zu "Phänomenen" kommen, daß bestimmte Richtlinieneinstellungen sich nicht durchsetzen etc.

Der Ablauf der Vererbung muss in diesem Fall noch einmal genau kontrolliert werden, um Fehler zu finden, in denen sich 2 Einstellungen zB durch den normalen Überschreibungsvorgang der zuletzt angewendeten Richtlinie überstimmen oder ins Gegenteil gesetzt werden.

Der Loopbackverarbeitungsmodus kennt 2 Konfigurationseinstellungen: Zusammenführen (Merge) und Ersetzen (Replace)

Im ersten Fall werden alle vorhandenen Benutzerrichtlinien des Benutzerobjekts mit denen des Computerobjekts zusammengeführt, wobei die Einstellungen aus der Benutzerkonfiguration der Computerrichtlinie, die Einstellungen des Benutzerobjekts überschreiben können, wenn sie sich widersprechen. LAST WRITER WINS!

Im Replace Modus, werden alle Benutzereinstellungen des Benutzerobjekts ignoriert und verworfen und es kommen nur die Einstellungen der Benutzerkonfiguration des Computerobjekts zum Einsatz.

Ich persönlich habe lange Zeit den "Ersetzen" Modus favorisiert, da ich im Falle eines Falles nur eine Stelle (die Einstellungen des Computers) kontrollieren muss um a) genau zu wissen, was beim Benutzer ankommt und b) die Fehlersuche zu reduzieren und damit c) den Ablauf insgesamt vereinfache.

Der Nachteil ist, und das ist der Grund, warum ich mittlerweile "Zusammenführen" mag, daß ich viele  Einstellungen erneut definieren muss, die schon beim Benutzer konfiguriert sind, da sie ja beim "Ersetzen"  verworfen werden und fehlen.