Delen via


Event1644Reader.ps1 gebruiken om ldap-queryprestaties in Windows Server te analyseren

In dit artikel wordt een script beschreven waarmee u de Active Directory-gebeurtenis-id 1644 in Windows Server kunt analyseren. Bekijk de stappen om het script te gebruiken en analyseer vervolgens uw problemen.

Oorspronkelijk KB-nummer: 3060643

Over het script Event1644Reader.ps1

Active Directory-gebeurtenis-id 1644 wordt vastgelegd in het gebeurtenislogboek van de Directory-service. Deze gebeurtenis identificeert dure, inefficiënte of trage LDAP-zoekopdrachten (Lightweight Directory Access Protocol) die worden onderhouden door Active Directory-domeincontrollers. Algemene gebeurtenis-id 1644 van NTDS kan worden gefilterd om LDAP-zoekopdrachten vast te leggen in het gebeurtenislogboek van Directory Services op basis van het aantal objecten in de Active Directory-database dat is bezocht, het aantal objecten dat is geretourneerd of de uitvoeringstijd van ldap-zoekopdrachten op de domeincontroller. Zie Hotfix 2800945 prestatiegegevens toevoegt aan het Active Directory-gebeurtenislogboek voor meer informatie over gebeurtenis-id 1644.

Event1644Reader.ps1 is een Windows PowerShell-script waarmee gegevens worden geëxtraheerd uit 1644 gebeurtenissen die worden gehost in opgeslagen gebeurtenislogboeken van Directory Service. Vervolgens worden die gegevens geïmporteerd in een reeks draaitabellen in een Microsoft Excel-spreadsheet om beheerders te helpen inzicht te krijgen in de LDAP-workloads die worden onderhouden door de domeincontrollers en clients die deze query's genereren.

Het script verkrijgen

U kunt het script verkrijgen via het blogbericht Basisinfrastructuur en -beveiliging: dure, inefficiënte en langlopende LDAP-query's vinden in Active Directory.

Notitie

Het script is gekoppeld aan het blogbericht met de bestandsnaam Event1644Reader.zip

Disclaimer van Script Center
De voorbeeldscripts worden niet ondersteund in een standaardondersteuningsprogramma of -service van Microsoft. De voorbeeldscripts worden geleverd ALS IS zonder enige garantie. Microsoft wijst alle impliciete garanties, met inbegrip van, zonder beperking, impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel af. Het volledige risico dat het gevolg is van het gebruik of de prestaties van de voorbeeldscripts en documentatie blijft bij u. In geen geval is Microsoft, haar auteurs of iemand anders die betrokken is bij het maken, produceren of leveren van de scripts aansprakelijk voor enige schade (met inbegrip van, zonder beperking, schade voor verlies van bedrijfswinsten, bedrijfsonderbreking, verlies van bedrijfsgegevens of ander geldelijk verlies) dat voortvloeit uit het gebruik van of onvermogen om de voorbeeldscripts of documentatie te gebruiken, zelfs als Microsoft op de hoogte is gesteld van de mogelijkheid van dergelijke schade.

Online peer-ondersteuning
Voor online peer-ondersteuning kunt u deelnemen aan het Officiële Scripting Guys Forum! Als u feedback wilt geven of fouten wilt rapporteren in voorbeeldscripts, start u een nieuwe discussie op het tabblad Discussies voor dit script.

Het script gebruiken

Voer de volgende stappen uit om de LDAP-query's die zijn vastgelegd in gebeurtenis-id 1644 beter te analyseren:

  1. Zorg ervoor dat de domeincontrollers waarvoor u het oplossen van problemen met het vastleggen van verbeterde gebeurtenissen ** 1644 gebeurtenismetagegevens wilt oplossen.

    Notitie

    Windows Server 2012 R2 heeft verbeterde logboekregistratie van 1644 gebeurtenissen toegevoegd door de duur van LDAP-query's en andere metagegevens vast te leggen. De verbeterde logboekregistratie van 1644-gebeurtenissen is teruggezet naar Windows Server 2012, Windows Server 2008 R2 en Windows Server 2008 door hotfix-2800945.

  2. Stel de waarde van de volgende registervermelding Field Engineering in op 5: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\Field Engineering

    Notitie

    Als u de uitbreiding van het veldtechnieklogboek instelt op 5, worden andere gebeurtenissen vastgelegd in het gebeurtenislogboek van de directoryservice. Stel field engineering opnieuw in op de standaardwaarde 0 wanneer u niet actief 1644 gebeurtenissen verzamelt. (Voor deze actie is geen herstart vereist.)

  3. Als de volgende registervermeldingen bestaan, wijzigt u de waarden in de gewenste drempelwaarde in milliseconden. Als er geen bepaalde registervermelding bestaat, maakt u een nieuwe vermelding met die naam en stelt u de waarde vervolgens in milliseconden in op de gewenste drempelwaarde.

    Registerpad Gegevenstype Default value
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Drempelwaarde voor zoektijd (msecs) DWORD 30,000
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Dure drempelwaarde voor zoekresultaten DWORD 10,000
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Inefficiënte drempelwaarde voor zoekresultaten DWORD 1.000

    Notitie

    • Wanneer het registratieniveau Field Engineering is ingeschakeld en de registervermelding Zoektijd (msecs) niet wordt gebruikt of is ingesteld op 0, is de standaardwaarde van de tijdsdrempelwaarde 30.000 milliseconden. (Voor deze actie is geen herstart vereist.)
    • Een strategie is om de registerwaarde in te stellen voor zowel de inefficiënte drempelwaarde voor zoekresultaten als de registerinstellingen voor dure zoekresultaten, en vervolgens te focussen op gebeurtenissen die worden geïdentificeerd door de zoektijd (msecs). Begin met een grotere waarde, zoals 100 milliseconden, en verlaag de waarde vervolgens stapsgewijs wanneer u de query's optimaliseert die in uw omgeving plaatsvinden.
    • Event1644Reader.ps1 kan gebeurtenissen van meerdere domeincontrollers parseren. Configureer de veldtechniek, zoektijd, dure en inefficiënte registersleutelinstellingen op alle domeincontrollers waarop u LDAP-zoekopdrachten wilt controleren.
  4. Download het bestand Event1644Reader.ps1 van You can obtain the script from the Core Infrastructure and Security Blog post How to find dure, inefficiënte en langlopende LDAP-query's in Active Directory to the computer that will analyze saved Active Directory Service EVTX files that contain 1644 events.

    Op deze computer moet Microsoft® Excel® 2010 of een latere versie zijn geïnstalleerd en moet voldoende schijfruimte zijn om de gebeurtenislogboeken van de directoryservice te hosten die door het script worden geparseerd.

  5. Kopieer opgeslagen gebeurtenislogboeken van Directory Service die 1644 gebeurtenissen bevatten van de domeincontrollers waarvoor u logboekregistratie van 1644 gebeurtenissen hebt ingeschakeld op de 1644-analysecomputer.

  6. Klik in Windows Verkenner met de rechtermuisknop op het bestand Event1644Reader.ps1 en selecteer Uitvoeren met PowerShell.

    Hier volgt de schermopname voor deze stap:

    Klik met de rechtermuisknop op het bestand Event1644Reader.ps1 en selecteer Uitvoeren met PowerShell.

  7. Druk op Y om het PowerShell-uitvoeringsbeleid naar behoefte te omzeilen.

  8. Geef het pad op van de EVTX-bestanden die moeten worden geparseerd.

  9. Wanneer u de prompt ziet als de volgende schermopname, voert u de volgende acties uit:

    PowerShell-opdracht over het uitvoeren van het bestand Event1644Reader.ps1.

    • Druk op Enter om alle EVTX-bestanden die zich in dezelfde map bevinden als het bestand Enent1644Reader.ps1 te parseren.
    • Typ het drive:\path pad dat de EVTX-bestanden bevat die moeten worden geparseerd.

    Notitie

    Event1644Reader.ps1 parseert 1644 gebeurtenissen in alle gebeurtenislogboeken van de adreslijstservice die zich in het doelpad bevinden telkens wanneer het script wordt uitgevoerd.

  10. Open het werkblad om gegevens te bekijken en door de reeks tabbladen te lopen en sla het Excel-werkblad op indien nodig. Zie de sectie Overzicht van het Excel-werkblad dat is gemaakt door 1644Reder.ps1 voor meer informatie over de tabbladen in het werkblad.

    Notitie

    *.csv bestanden die door het hulpprogramma zijn gemaakt, worden niet automatisch verwijderd. U kunt *.csv bestanden leegmaken nadat uw onderzoek is voltooid.

Meer informatie

Overzicht van het Excel-werkblad dat is gemaakt door Event1644Reader.ps1

Event1644Reader.ps1 extraheert metagegevens uit 1644 gebeurtenissen in opgeslagen gebeurtenislogboeken van Directory Service en importeert die gegevens in een reeks werkbladen met tabbladen in een Microsoft Excel-spreadsheet.

De volgende tabel bevat een overzicht van de gegevens die zijn opgenomen op elk tabblad:

Tabblad Beschrijving
RawData Elk gegevensveld dat wordt vastgelegd met gebeurtenis-id 1644, wordt geïmporteerd in afzonderlijke kolommen. Gegevensfiltering is automatisch ingeschakeld, zodat u kunt sorteren of filteren op een kolomkop. Als 1644-gebeurtenislogboeken van meerdere domeincontrollers zich in dezelfde map bevinden als het PowerShell-script of de door de beheerder opgegeven directory, gebruikt u filters om LDAP-query's weer te geven die zijn gericht op specifieke domeincontrollers.
Top_StartingNode Biedt een gesorteerde lijst met de mappartities waarop LDAP-query's zijn gericht in een bepaald voorbeeld. Als de meeste query's plaatsvinden in één partitie (schema, configuratie of domein), kunt u overwegen om die partitie toe te voegen als filter in de resterende draaitabellen. Drillthrough-details bevatten de belangrijkste filters (zoals de LDAP-query), de client-IP's die deze query's hebben uitgegeven en de datum- en tijdstempels voor die query's.
Top_Callers Toont client-IP-adressen die LDAP-query's hebben uitgegeven in aflopende zoektellingsvolgorde met percentage eindtotaal. Het percentage van het lopende totaal helpt u bij het identificeren van de belangrijkste bellers. (Dat wil gezegd, de top 10 of 20 bellers genereren mogelijk 80 procent van het queryvolume, ervan uitgaande dat er te veel aanroepen uw probleem zijn). Drillthrough-details bevatten filters en datum- en tijdstappen die door elke door de client uitgegeven LDAP-query's in een bepaald voorbeeld worden weergegeven.
Top_Filters Een lijst met meest uitgegeven LDAP-query's in aflopende volumevolgorde. Dit omvat de gemiddelde zoektijd. Drillthrough-details bevatten het IP-adres van de LDAP-client en de datum en tijd waarop elke query is verzonden.
TotalSearchTime door bellers Toont client-IP-adressen in aflopende volgorde van de totale zoektijd voor alle LDAP-query's in het voorbeeld. Detailanalyse identificeert de LDAP-query's en de datum en tijd waarop elke query is uitgegeven.
TotalSearchTime op filters Een lijst met LDAP-query's in aflopende volgorde van de totale zoektijd. Drillthrough-details bevatten het IP-adres van de LDAP-client en de datum en tijd waarop elke overeenkomende query is verzonden.
Rangschikkingen voor zoektijd Geeft het aantal LDAP-query's weer dat is opgetreden in kwartielen op basis van tijd. Tragere query's zijn slecht. Snellere query's zijn goed als ze niet te vaak worden uitgegeven. Microsoft Exchange wil dat LDAP-query's die worden uitgegeven door Exchange-servers, in 50 milliseconden of minder worden omgezet. De eerste kwartielgroep richt zich dus op die tijd 'bucket'.
Lege draai Dit is een lege draaitabel die u naar behoefte kunt wijzigen om de specifieke gegevens voor uw scenario weer te geven.

Scenarioanalyse

Als LDAP-query's traag zijn of als het CPU-gebruik hoog is op domeincontrollers, kan dit worden veroorzaakt door overmatig uitgegeven query's, inefficiënte query's, een combinatie van deze query's, Asynchrone threadwachtrijen (ATQ) pooluitputting of veel wijzigingsmeldingen.

Als clients dure, inefficiënte of veel LDAP-query's uitgeven, gebruikt u Event1644Reader.ps1 om gegevens op de domeincontrollers te verzamelen om de IP-adressen van de clients te identificeren. Wijs dergelijke query's vervolgens toe aan de proces-id, de procesnaam of de aanroepende toepassing op de clientcomputers.

De volgende tabel bevat de mogelijke optimalisaties voor dit probleem.

Optimalisatie/risicobeperking Samenvatting
Stop de overmatige werkbelasting. Als veel of LDAP-query's servicestops veroorzaken, richt u zich op de belangrijkste aanroepende clients en kunt u de bron van de overmatige werkbelasting identificeren en elimineren.

Mogelijke opties voor het identificeren van toepassingen zijn het gebruik van PROCMON, ETL/ETW-tracering en foutopsporingsanalyse om de toepassing te identificeren die LDAP-query's op de client genereert. Een andere strategie is het gebruik van een gedeelde by-twee benadering van topping-services of het verwijderen van toepassingen die LDAP-query's genereren. De uitgegeven query's kunnen de aanroepende toepassing of het aanroepende proces impliceren.
Installeer een bijgewerkte LDAP-queryoptimalisatie. Windows Server 2012 R2 bevat een bijgewerkte LDAP-queryoptimalisatie die de prestaties voor de meeste query's verbetert. Subsets van windows Server 2012 R2 worden backported naar Windows Server 2008 R2 en Windows Server 2012 in hotfix-2862304.
Zorg ervoor dat clients query's verzenden naar siteoptimale domeincontrollers. Het verzenden van LDAP-query's in het WAN introduceert netwerklatentie bij de levering van de LDAP-query aan de domeincontroller en het antwoord op de client. Zorg ervoor dat Active Directory-sites en subnetdefinities bestaan voor client- en servercomputers in Active Directory.

Zorg ervoor dat toepassingen geen in code vastgelegde verwijzingen naar externe domeincontrollers of leesbare domeincontrollers alleen gebruiken wanneer site-optimale domeincontrollers bestaan.
Werk samen met softwareontwikkelaars om de frequentie te verminderen waarop query's worden uitgegeven. Dit omvat het gebruik van caching. Zelfs efficiënt uitgegeven query's kunnen een juiste grootte en geconfigureerde domeincontroller afslaan als er te vaak query's worden uitgegeven.
Toepassingen moeten hun queryvolume of cachequeryresultaten mogelijk beperken om de netwerk-, LDAP- en CPU-belasting te verminderen.
Optimaliseer de LDAP-query om sneller uit te voeren. Querysyntaxis moet mogelijk worden geherstructureerd om sneller uit te voeren.
Het verplaatsen van query-elementen naar links of rechts in het filter kan de prestaties verbeteren.
Het toevoegen van een dubbele not kan de prestaties van query's verbeteren.
Overweeg om het aantal objecten te verminderen dat wordt bezocht door query's lager in de structuur te starten.
Verminder het aantal kenmerken dat wordt geretourneerd door query's.
Voeg naar behoefte indexen toe aan Active Directory-kenmerken. Het toevoegen van indexen kan de queryprestaties verbeteren. Dit heeft het neveneffect van het vergroten van de databasegrootte en kan de Active Directory-replicatie tijdelijk vertragen tijdens het compileren van de index.
Bepaal of er een codefout bestaat in de queryoptimalisatie en andere onderdelen. Defecten in de LDAP-queryoptimalisatie en andere onderdelen kunnen de doorvoer verminderen.

Bekend probleem

De waarden in het Excel-werkblad worden niet correct weergegeven of weergegeven op computers die niet-Engelse talen gebruiken.

Dit gebeurt bijvoorbeeld op een computer wanneer de Cmdlet Get-Culture Windows PowerShell de regionale instelling als volgt aangeeft:

PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-Culture  
LCID Name DisplayName  
---- ---- -----------
1031 de-DE German (Germany)

PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-UICulture

LCID Name DisplayName  
---- ---- -----------
1033 en-US English (United States)

In dit geval worden getallen in het Excel-werkblad weergegeven zoals in de volgende schermafbeelding:

Probleem met getallen in het Excel-spreadsheet.

U kunt dit probleem oplossen door het decimaalteken te wijzigen in een punt (.) in het item Regio-instellingen in Configuratiescherm.

Zie de volgende blog voor meer informatie over LDAP-query's: Dure, inefficiënte en langlopende LDAP-query's vinden in Active Directory