Windows doorlichten met Sysinternals Process Monitor

Redactie
0

Process Monitor is een van de krachtigste tools om Windows te analyseren. De software maakt enorm veel logbestanden met op het eerste gezicht een onoverzichtelijke brij informatie. Gelukkig kun je met handige filterfuncties precies nagaan welk proces wat doet.

Als je wilt weten wat de processen in Windows doen, heb je een tool nodig die realtime alles bijhoudt wat in het systeem gebeurt. Process Monitor is zo’n tool. Dat programma maakt onderdeel uit van de Sysinternals-suite, een uitgebreide verzameling tools voor Windows.

Process Monitor houdt alles goed bij. Het registreert benaderingen van alle processen en allerlei soorten bestanden, mappen en registersleutels. Daarmee kun je precies achterhalen wat er diep in het systeem eigenlijk allemaal gaande is. Foutmeldingen of eventuele oplossingen voor problemen worden niet gegeven. Je krijgt alleen een berg ruwe data te zien waarmee je de oorzaak kunt opsporen. Zo’n monitortool is niet iets wat je even tussendoor gebruikt. Per seconde komen er enkele honderd tot duizenden regels bij – afhankelijk van de vraag of het systeem niets doet of dat je er actief mee werkt. Met nuttige filterfuncties kun je de stortvloed aan meldingen echter goed beperken.

Pak het ziparchief uit en start het programma procmon.exe. Nadat je met de licentievoorwaarden akkoord bent gegaan, begint Process Monitor meteen met loggen. Dat vreet resources. Je stopt de analyse door op het vergrootglas op de systeembalk te klikken.

Process Monitor geeft bij elke actie het exacte tijdstip weer (Time of Day), de naam van het proces en de ID (Process Name en PID), het type benadering (Operation), het doel (Path), het resultaat (Result) en details over de operatie – bijvoorbeeld welke waarde uit een registersleutel werd gelezen of ernaar geschreven.

De Operation kan een benadering tot het bestandssysteem zijn (Create File, CloseFile, ReadFile, …), informatie over een gestarte of beëindigde thread (Thread Create, Thread Exit) of een benadering van het register (RegOpen Key, RegQueryValue en RegCreateKey).

Speld in een hooiberg

De belangrijkste filterfunctie activeer je door in het snelmenu (rechtermuisknop) te klikken op de opties ‘Include’ of ‘Exclude’. Om het allemaal inzichtelijker te maken, hebben we een praktijkvoorbeeld verzonnen: een notebook met Windows 10 dat het beeldscherm nooit in de Slaapstand mag zetten zolang er een gebruiker aangemeld is. En zeker niet als het notebook op netstroom werkt. De duur van de time-out is in het Energiebeheer dan ook ingesteld op ‘Nooit’, maar springt om onbegrijpelijke redenen vroeg of laat – na een paar uur of enkele dagen – telkens weer terug naar de standaardwaarde van 20 minuten.

Net als veel andere systeeminstellingen worden de waarden voor de time-out van de slaapstand geregeld via registersleutels. Om te voorkomen dat de waarden telkens vanzelf terug worden gezet, moet je eerst weten welke sleutel gebruikt wordt als je de time-out in het Configuratiescherm aanpast.

Omdat het logboek razendsnel groter wordt, kun je de controle het best eerst even uitschakelen. Klik hiervoor op het vergrootglas. Het registreren wis je met het gummetje (twee knoppen verder naar rechts). Open de Instellingen van Windows 10 en ga naar ‘Systeem / Energiebeheer en Slaapstand’. Dan volgen een paar handelingen redelijk snel na elkaar: start Process Monitor, stel bij het Energiebeheer bij ‘Bij gebruik van netstroom, uitschakelen na’ achtereenvolgens twee verschillende waarden in – bijvoorbeeld 15 en 45 minuten – en stop de logfunctie van Process Monitor dan meteen weer.

Gevonden!

Het resultaat is een logbestand met een paar honderdduizend items, dus wordt het tijd om te filteren. Omdat ergens in de lijst ook de aanpassingen aan de gezochte registersleutel voor de time-out van het scherm moeten staan, roep je de hulp in van het verrekijkertje op de systeembalk. Daarmee open je de zoekfunctie. Typ voor dit voorbeeld de term ‘RegSetValue’ in. Dat is het type operatie dat gelogd wordt als er een waarde in het register aangepast wordt.

Zodra de zoekfunctie de term gevonden heeft, wordt die in de lijst geselecteerd. Klik met de rechtermuisknop op de operatie ‘RegSetValue’ voor een snelmenu met filters. De gewenste optie heet ‘Include ‘RegSet Value’. De lijst met resultaten zal dan korter worden: van enkele honderdduizend naar zo’n 10 à 20 items die een ‘RegSetValue’-methode bevatten.

Om uit die lijst de relevante sleutel te halen, moet je je richten op de kolom ‘Detail’. Er moeten twee items zijn die de volgende termen bevatten: ‘Type: REG_ DWORD, Length: 4, Data: 2700’ en ‘Type: REG_DWORD, Length: 4, Data: 900’. Dat zijn de gezochte instellingen – de waarden 900 en 2700 staan voor de nieuw ingestelde time-outs uitgedrukt in seconden.

Op heterdaad

Klik je met de rechtermuisknop in de kolom ‘Path’ op het registerpad en vervolgens op ‘Include ‘HKLMSystemCurrentControl Set…”, dan kun je het filter concreet tot die sleutel beperken. In dit voorbeeld staan er dan nog maar twee items op de lijst. Met dat filter kun je Process Monitor gewoon op de achtergrond door laten loggen.

Dat vreet op den duur ook veel resources. Op een gegeven moment zal het werkgeheugen een gigantisch logbestand bevatten. Je moet in het menu ‘Filter’ de optie ‘Drop Filtered Events’ in ieder geval dan ook ingeschakeld laten. Daarmee zorg je ervoor dat alles wat door het filter wordt tegengehouden niet alleen simpel verborgen wordt, maar ook compleet verwijderd. Op die manier wordt er geen overbodige ruimte meer in het werkgeheugen ingenomen. Zodra de registerwaarde voor de schermtime-out weer eens wordt aangepast, wordt daar weer melding van gemaakt in Process Monitor. De software geeft dan ook aan welk proces de time-outinstelling ongewenst heeft beïnvloed.

Het hangt een beetje af van het proces (en wat dat benadert) wat je daarna moet doen. Er zijn meerdere manieren om de registerwaarde op een constante waarde te houden, bijvoorbeeld met een taak in Windows Taakplanner die de waarde elke 15 minuten weer op 0 zet, of door het proces in kwestie tijdens het booten uit te sluiten met bijvoorbeeld Sysinternals Autoruns. Een meer radicale methode is via de registereditor het systeem de schrijfrechten voor de sleutel ontnemen.

Er is nog meer

Als je het gevoel hebt dat de instellingen voor het energiebeheer op de standaardwaarden worden teruggezet als het systeem opstart, kun je bij het menu-item ‘Options’ de functie ‘Enable Boot Logging’ activeren. Open je Process Monitor na een reboot, dan kun je de logbestanden bekijken en filteren.

Op dezelfde manier kun je met Process Monitor bijvoorbeeld achterhalen wat software voor het optimaliseren van de privacy-instellingen bij Windows 10 eigenlijk precies uitvoert. Je kunt uitzoeken welke processen bij een onbelast systeem gevoelige bestanden benaderen, enzovoorts. Als je niet precies weet waar je naar moet zoeken, is de beste filterfunctie vaak niet ‘include’ maar juist ‘exclude’. Daarmee worden alleen de resultaten verwijderd waarin het gekozen attribuut voorkomt. Het filteren kan even duren, dus zorg dat je bij het gebruik van Process Monitor in elk geval ruim de tijd hebt.

(Jan Schüßler, Marcel van der Meer)

 

processmonitor1

processmonitor2

Zet je de schermtime-out eerst op 15 minuten en vervolgens op 45, dan zijn die in Process Monitor terug te vinden als  RegSetValue-operaties – met 900 en 2700 seconden. Dan kun je het filter naar het bepaalde sleutelpad uitbreiden.

Deel dit artikel

Lees ook

Bouw je eigen mini-computer

Mini PC's uit Intel's Next Unit of Computing serie passen in de palm van je hand maar zijn desondanks geschikt voor de meeste alledaagse toepassingen....

Windows 10 makkelijker bedienen, deel 3

Windows 10 heeft een aantal trucs aan boord om sneller te kunnen werken. We geven enkele tips om Windows 10 makkelijker te bedienen, zoals het uitgebr...

Interessant voor jou

Bouw je eigen mini-computer

Bouw je eigen mini-computer

workshops1 reacties
0 Praat mee

avatar
  Abonneer  
Laat het mij weten wanneer er