Dump-Ticketsize

Basierend auf den immer wieder auftretenden Effekten mit Kerberos Tickets und deren vermeintlichen Größe habe ich auf Basis der auf TokenGroup beschriebenen Funktion ein PowerShell-Skript erstellt, welches allein auf ADSI-Basis eine Liste der Benutzer und deren erwartete Kerberos-Tokengröße ermittelt. Über den Sinn und die Notwendigkeit einer solchen Auswertung können Sie sich auf der Seite Kerberos Ticketsize und andere.

Funktionsweise

Das Skript holt sich dazu über den globalen Katalog die Liste aller Benutzer. Es muss sich dann aber auf den Benutzer direkt verbinden, um letztlich auch einen GC der Benutzerdomäne zu verbinden. Denn nur der DC der Heimatdomäne kann die Tokensize-Auflösung korrekt ausführen. Ein DC einer anderen Domäne ermittelt nur eine Teilmenge der Mitgliedschaften.

Das Zwischenergebnis ist dann eine Liste von SIDs von Gruppen, in denen der Benutzer Mitglied ist. Dann muss das Skript zu den SIDs die entsprechenden Gruppen auflösen und den Gruppentyp bestimmen. Die Anzahl der Bytes im Token sind abhängig von dem Typ der Gruppe. Damit diese Anfrage nicht immer wieder bei jedem Benutzer vom Neuen gestartet werden muss., wird die Gruppe und deren Typ in einer Hashtable zwischengespeichert. Am Ende gibt das Skript eine Liste der Benutzer, der Anzahl der Gruppenmitgliedschaften und natürlich die Kerberos-Ticketgröße aus. Ich halte mit bei der Ermittlung dieser Größe an die Informationen von Microsoft. Die Aussage ist aber nicht unbedingt "Bytegenau". für eine erste Größenschätzung reicht es aber.

Download und Aufruf

Sie benötigen einen Computer in der Domäne, der auf alle DCs im gesamten Forest "READ"-Rechte hat, um für die gefundenen Benutzer die Ticketsize zu ermitteln. Zudem muss auf dem Computer natürlich PowerShell 2.0 installiert sein.

dump-ticketsize.1.7.ps1

Kopieren Sie das Skript einfach in ein leeres Verzeichnis und starten Sie dieses aus einer PowerShell. Es gibt eigentlich keine Parameter oder Steuerung. Das Skript sucht sich einen GC im aktuellen Forest in der aktuellen Site und beginnt seine Arbeit. Auf dem Bildschirm können Sie den Fortschritt betrachten. Die farbigen Tupfer zeigen z.B. an, ob eine Gruppe neu ermittelt oder aus der Hashtable bezogen wurde.

Das ist ein Screen-Capture mitten in einem Laud. für jede Gruppe eines Benutzers wird die Gruppe bestimmt. Das "H" bedeutet, dass die Gruppe schon in der Hashtabelle enthalten war. Das "S" sagt ein "SameDomain" aus, d.h. Gruppe und Benutzer sind in der gleichen Domain. Sie helfen mir also bei der Fehlersuche.

Ausgabe

Wer etwas PowerShell lesen kann, wird am Ende des Skripts folgende Zeile entdecken:

$result | export-csv .\dump-ticketsize.$now.result.csv -notypeinformation -delimiter ";"

Das Skript gibt die ermittelten Daten einfach in eine CSV-Datei aus, die mit "DUMP-TICKETSIZE" beginnt und dann einen Zeitstempel erhält. Diese Datei können Sie sehr einfach in Excel öffnen, anzeigen lassen und natürlich auch sortieren und Filtern.


Hier ist ersichtlich, dass der erste Eintrag in 64 Gruppen enthalten ist und das Kerberos-Ticket ca. 2,8 Kilobyte. Zudem wird auch die Hashtabelle am ende mit EXPORT-CLIXML exportiert. Auch dies dient aber eher einer Fehlersuche.

Weitere Links