Windows Server Blog

Deutscher Windows Server Blog mit Beiträgen von Microsoft-Mitarbeitern; Tipps &Tricks für Administratoren zu aktuellen Windows Server-Versionen, allen Server-Rollen und Features.

Aktualisierung von Computer-Gruppenmitgliedschaften bei Domänen Mitgliedern

Aktualisierung von Computer-Gruppenmitgliedschaften bei Domänen Mitgliedern

  • Comments 4
  • Likes

Hi zusammen, hier ist Fabian vom deutschen CSS Domain Team (http://blogs.technet.com/deds). Ich steuere heute einen Beitrag für den Windows Server Blog zum Thema „Aktualisierung von Computer-Gruppenmitgliedschaften bei Domänen Mitgliedern“ bei.

Es gibt einige Gründe, um Benutzer- und Computerobjekte zu Gruppenmitgliedern zu machen: Sei es beispielsweise zur logischen Strukturierung von Zugriffsrechten oder Rollenkonzepten, zur Zusammenfassung von Verwaltungsbereichen oder aber zur Gruppenrichtlinien-Filterung. Die globalen und universellen Gruppenmitgliedschaften werden im „Ticket Granting Ticket“ (TGT, siehe Ticket-Granting Tickets http://msdn.microsoft.com/en-us/library/aa380510(VS.85).aspx) eines Benutzer bzw. Computers gespeichert, welches grundsätzlich erst einmal nur bei der Anmeldung an einem DC / KDC generiert wird. Die domänenlokalen Gruppenmitgliedschaften finden sich im Ticket Granting Service (TGS, siehe http://support.microsoft.com/kb/217098/en-us).

Macht man nun beispielsweise einen Benutzer zu einem Mitglied einer neuen Gruppe, dann reicht eine Neuanmeldung dieses Benutzers an den „interaktiv“ genutzten Systemen, um die neue Gruppenmitgliedschaft in das TGT des Benutzers aufzunehmen (oder auch nicht mehr vorhandene Gruppenmitgliedschaften zu entfernen). Bei Computern findet dieser „Anmeldevorgang“ jedoch beim Computerstart statt, so daß hier ein Reboot notwendig wäre – was gerade bei Servern oft ein Problem darstellt.

Folgender Workaround kann in so einem Fall helfen:

Man kann das TGT und TGS löschen und somit eine Neuausstellung erzwingen. Dabei werden die neuen Gruppenmitgliedschaften des Computerobjekts mit in das TGT und das TGS aufgenommen.
Hierzu begibt man sich in den SYSTEM-Kontext des Computers; unter Windows Server 2003 etwa mittels des Befehls:

C:\> AT 02:00PM /interactive cmd.exe

Hierbei wird um 02:00 Uhr (oder der selbst eingesetzten Zeit) eine interaktive CMD im SYSTEM Kontext geöffnet. Man muß, um diese CMD zu sehen, auf der Session „0“ am System angemeldet sein, also entweder direkt vor dem Bildschirm sitzen oder die Remote-Console im „/admin“ Modus betreiben.
Unter Windows Server 2008 ist das nicht mehr in der Form möglich, jedoch kann recht komfortabel „PsExec“ (Download: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx) genutzt werden:

C:\> PsExec \\localhost -i -s cmd

In der SYSTEM-Kommandozeile nutzt man nun KLIST, um das TGT zu löschen:

C:\Windows\system32> klist.exe purge

KLIST muß unter Windows Server 2003 über die Windows Server 2003 Resource Kit Tools nachgerüstet werden (Download: http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en). 
Bei Windows Server 2003 muß dann jeder Löschvorgang pro Ticket bestätigt werden, was sich so einfach auch nicht umgehen läßt. Bleibt also meist nur das manuelle Ausführen des Befehls und die Bestätigungen – alternativ muß etwas Aufwand in die Programmierung eines eigenen Scripts gesteckt werden.

Unter Windows Server 2008 ist eine erweiterte Version von KLIST direkt enthalten. Hiermit müssen die Löschvorgänge nicht mehr bestätigt werden, wodurch man das Vorgehen recht problemlos scripten oder über einen geplanten Task verteilen kann. Zusätzlich bietet Windows Server 2008 die Möglichkeit, nur das TGT des SYSTEMs direkt zu löschen:

C:\> klist.exe –li 0x3e7 purge

„0x3e7“ kennzeichnet in diesem Kontext immer den SYSTEM-Prozesses, wodurch man das Kommando also auf jedem Windows Server 2008 (und späteren Betriebssystemen) einsetzen kann.
Nach dem Löschen des TGTs fordert das SYSTEM bei der nächsten Kerberos-relevanten Aktion ein neues TGT beim Key Distribution Center (KDC, siehe Key Distribution Center http://msdn.microsoft.com/en-us/library/aa378170(VS.85).aspx), also einem Domain Controller (DC), an.

Alternativ dazu werden die TGTs eines Benutzers oder Computers (standardmäßig) alle 7 Tage erneuert – das heißt also die Tickets werden nicht nur verlängert (das passiert standardmäßig alle 10 Stunden), sondern nach Ablauf dieses Zeitraums neu ausgestellt. Somit werden also auch die neuen Gruppenmitgliedschaften in das TGT und die TGS des Computers (oder auch von Benutzern) mit aufgenommen. Siehe dazu:

Configuring Kerberos Policies
http://technet.microsoft.com/en-us/library/Dd277401.aspx

Maximum lifetime for user ticket renewal
http://msdn.microsoft.com/en-us/library/ms813590.aspx

Kerberos Policy
http://technet.microsoft.com/en-us/library/Cc961968.aspx

Mit diesem Vorgang ist sichergestellt, daß die Gruppenmitgliedschaften eines Computers auch ohne Neustart aktualisiert werden. Nicht nur neue Gruppenmitgliedschaften werden hierbei in das TGT mit aufgenommen – es wird auch das Entfernen von Gruppenmitgliedschaften widergespiegelt, so daß die SIDs der entfernten Gruppen ebenfalls nicht mehr im TGT oder in den TGS enthalten sind. Gleiches gilt natürlich auch für einen normalen Benutzeraccount, sollte er sich in diesem Zeitraum beispielsweise nicht neu am System angemeldet haben.

Viele Grüße
Fabian

Comments
  • Hallo,

    toller Artikel, aber könnte man bitte die kursive Schriftart entfernen. Wirklich schwer zu lesen...

    Schöne Grüße

    Peter Forster

    MVP Virtual Machine

    Austria

  • Hi Peter,

    man kann ja gar nicht so schnell posten, wie Du neue Artikel bzw. Blogs sichtest. ;-)

    Die Formatierung ist jetzt noch einmal angepaßt, es sollte nun besser zu lesen sein.

    Vielen Dank für den Hinweis und Gruß
    Fabian

  • Hallo Fabian,

    super Artikel. Hat mir sehr weitergeholfen.

    Gibt es eine Möglichkeit den Befehl auf einem Remoterechner auszuführen? Wenn ich mit PSEXEC Remote eine CMD ausführe, bekomme ich von KLIST PURGE keine Ausgabe zurück.

  • Hi Martin,

    bei PsExec gibt es (wie von Dir schon bememerkt ;-)...) Probleme mit der erwarteten "Rückmeldung" von KLIST. Das ist mit der Windows Vista / 2008 Version kein Problem mehr, dort wird keine Bestätigung erwartet.

    Ich würde es wahrscheinlich mit der PowerShell V2 durchführen - die ist jetzt Remote-fähig und in vielen Belangen anderen Tools "überlegen". Dazu muß die PowerShell V2 bzw. um genau zu sein WinRM auf dem Zielsystem installiert sein.

    Viele Grüße

    Fabian

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment