Bootzeit- und Gruppenrichtlinienperformance

Je nach Komplexität der Gruppenrichtlinien können diese den Bootvorgang stark beeinflussen. Besonders deutlich wird dies, wenn Netzwerklaufwerke verbunden werden, die nicht mehr erreichbar sind. Dann verzögert sich die Abarbeitung bis zu eine Minute pro Laufwerk.

Daher ist es sinnvoll, die Abarbeitungszeiten pro Client Side Extension (CSE) auszuwerten. Dadurch ist sehr schnell sichtbar, in welchen Bereichen die meiste Zeit verbraucht wird.

Seit Vista (und ich denke keiner wird mehr Performanzmessungen an Windows XP Rechner vornehmen wollen) ist dies durch das Eventlog sehr einfach möglich. Die entsprechenden Daten liegen in den Anwendungslogs unter Microsoft/Windows/GroupPolicy/Operational und sind mit der Event ID 5016 gekennzeichnet.

Ein kleines Powershell Script ließt dieses Log remote aus und erstellt daraus eine CSV Datei, die mit etwas Pivot-Magie (Gruppiert nach CSE, Mittelwert über TimeInMilliSeconds) sehr schnell die Problembereiche darstellt:

 

$computer="localhost"
$events=get-winevent -Computer $computer -FilterHashTable @{LogName="Microsoft-Windows-GroupPolicy/Operational";Id=5016}
#basiert auf http://blogs.technet.com/b/ashleymcglone/archive/2013/08/28/powershell-get-winevent-xml-madness-getting-details-from-event-logs.aspx
ForEach ($Event in $Events) {            
    # Convert the event to XML            
    $eventXML = $Event.ToXml()            
    # Iterate through each one of the XML message properties            
    For ($i=0; $i -lt $eventXML.Event.EventData.Data.Count; $i++) {            
        # Append these as object properties            
        Add-Member -InputObject $Event -MemberType NoteProperty -Force -Name  $eventXML.Event.EventData.Data[$i].name -Value $eventXML.Event.EventData.Data[$i].'#text'            
    }            
}   
$events | select TimeCreated,MachineName,CSEExtensionName,CSEElaspedTimeInMilliSeconds | Export-Csv ("c:\temp\cse-"+$computer+".csv")
This entry was posted in Active Directory Domain Service, Deutsch, Powershell and tagged , . Bookmark the permalink.