Algemene technieken om problemen op te lossen (troubleshooting)
- Introductie
- Problemen met video of geluid
- Bestandscontrole (System File Checker)
- Controleer Logboeken (Event Viewer)
- Controleer op vreemde programma's
- Controleer op corrupte Windows-componenten
- Zoeken in de kennisdatabase van Microsoft
- Probeer schoon opstarten (een clean boot)
- Vergelijk 2 computers met elkaar
- Uitvinden waar een GUID (bv. {26EE0668-A00A-44D7-9371-BEB064C98683}) bij hoort
- Problemen met een DLL verhelpen met REGSVR32
- Windows foutcodes (o.a. 0x8.......)
- Case: Een (bijna) hangende XP
- Sites met vaak goede antwoorden op vragen
- Links
Introductie
Als er zich op de PC een probleem voordoet waarbij je geen idee hebt waar de je de fout zou moeten zoeken, kan je een aantal algemene troubleshooting technieken toepassen.
De problemen zouden bv. kunnen bestaan uit:
- programma's werken niet of niet zoals ze zouden moeten werken;
- programma's of de PC crashen (in het laatste geval vaak met een blauw scherm);
- er verschijnen vreemde foutmeldingen;
- de PC is heel traag.
Je kan ook kijken op mijn pagina met een index op problemen.
Wat is een goede plaats om te beginnen?
Dat is Logboeken (Event Log)
.
In deze logs vind je meldingen (waarschuwingen en fouten) m.b.t. alle dingen
die er gebeuren op de PC, en i.h.b. dingen die niet goed gaan.
Verder kan je jezelf 3 dingen afvragen:
- Wat is er veranderd?
- Heeft iemand anders hetzelfde probleem?
- Wanneer is het probleem begonnen?
Problemen met video of geluid
Er is een eenvoudige eerste stap die je kunt zetten als er iets mis is met
video of geluid (afspelen of opnemen).
DirectX
is een component van Windows die belangrijk
is voor alles wat met geluid en beeld te maken heeft, en er is een programma
dat kan controleren of de onderdelen van die component in orde zijn.
Klik op Start
,
en tik dan in: dxdiag
, gevolgd door
Enter
Onder Windows 7 en 10 krijg je nu een venster met 4 a 5 tabbladen (er kunnen
meerdere tabbladen voor geluid zijn).
Onderaan het 2e t/m 5e tabblad staat een vak met de titel
Opmerkingen (Notes)
, en in dat vak staat als het goed
is Geen problemen gevonden (No problems found)
.
Als er iets anders staat moet je misschien bij Microsoft de nieuwste versie
van DirectX
voor jouw Windows-versie ophalen,
en die installeren.
Ga naar deze pagina voor problemen met het afspelen van video buiten browsers, en naar dit stuk voor het afspelen van video binnen browsers.
Bestandscontrole (System File Checker)
Introductie
System File Checker (sfc)
controleert of essentiele Windows files nog
in orde zijn.
Files die niet OK zijn worden uit een map op de harde schijf
of van de Windows CD/DVD gehaald.
Starten van sfc
Open een commandoregel venster.
Tik dan het volgende commando in:
sfc /scannow
,
gevolgd door Enter
.
Mogelijke vragen tijdens de scan
Windows 10
In Windows 10 kan je het volgende zien:
Another servicing or repair operation is currently running.
Wait for this to finish and run sfc again.
Ik heb geen idee welke andere operatie in de weg zat. Later probeerde ik het weer, en ging het wel.
Soms zijn er problemen, maar kunnen ze automatisch gerepareerd worden:
Windows Resource Protection found corrupt files and successfully repaired them.
For online repairs, details are included in the CBS log file located at
windir\Logs\CBS\CBS.log.
For example C:\Windows\Logs\CBS\CBS.log.
For offline
repairs, details are included in the log file provided by the /OFFLOGFILE flag.
Soms zijn de problemen zo groot dat je de volgende melding krijgt:
Windows Resource Protection found corrupt files but was unable to fix some of
them.
For online repairs, details are included in the CBS log file located at
windir\Logs\CBS\CBS.log. For example C:\Windows\Logs\CBS\CBS.log. For offline
repairs, details are included in the log file provided by the /OFFLOGFILE flag.
Windows XP
Tijdens de scan zou je de volgende vraag (of iets vergelijkbaars)
kunnen zien verschijnen:
Bestanden die voor een goede werking van Windows nodig zijn,
moeten worden gekopieerd naar de map DLL Cache.
(Files that are required for Windows to run properly must be copied
to the DLL Cache.)
In hetzelfde venster wordt je dan gevraagd de XP CD/DVD in de PC te doen:
(Insert your Windows XP Professional CD-ROM now)
(Of iets vergelijkbaars.)
Als de CD wel hebt klik dan op Opnieuw
, maar
als je niets doet gaat het programma uit zichzelf ook wel door.
Als je de CD niet hebt klikt dan op
Annuleren (Cancel)
.
Er komt dan een nieuwe vraag:
Weet u zeker dat u dit bestand wilt overslaan?
(Are you sure you want to skip this file?)
Antwoord met Ja (Yes)
.
Resultaten
Onder Windows XP werden er enties in
Logboeken (Event Viewer)
gemaakt voor
de resultaten.
Onder Windows 7 gaan de resultaten naar een
moeilijk te doorgronden logbestand.
In Windows 7 wil je in elk geval graag de volgende melding zien:
Er zijn geen schendingen van de integriteit gevonden.
Maar je kan ook de volgende tekst zien:
Beginning verification phase of system scan.
Verification 100% complete.
Windows Resource Protection found corrupt files but was unable to fix some
of them. Details are included in the CBS.Log windir\Logs\CBS\CBS.log. For
example C:\Windows\Logs\CBS\CBS.log. Note that logging is currently not
supported in offline servicing scenarios.
Windows 7
De uitvoer van sfc
gaat naar het bestand
CBS.log
Windows XP
Als de scan klaar is
start dan Event Viewer
.
Klik in het linkerdeel van het Event Viewer
venster op
Systeem (System)
.
Vrij bovenaan in het rechterframe staat als het goed is onder
Bron (Source)
minimaal 1 entry van
Windows File Protection
vrij bovenaan.
met als waarde onder Event
64017.
In het rechterframe kunnen onder
Gebeurtenis (Event)
de volgende getallen staan:
- 64016 (zou van alle
Windows File Protection
entries het meest onderaan moeten staan, d.w.z. het langst geleden uitgevoerd):
Bestandscontrole (System File Checker)
is gestart. - 64021:
Het is niet gelukt een bepaalde file te herstellen. - 64017:
Bestandscontrole (System File Checker)
is geëindigd.
Alle entries waar meer in staat dan alleen maar dat het programma
is gestart of gestopt (64016 en 64017) zijn interessant.
Je kan ze openen door er op te dubbelklikken.
Vervolgens kan je de tekst onder Beschrijving
(Description)
selecteren, kopiëren en plakken in een ander
bestand om door iemand te laten bekijken.
Controleer Logboeken (Event Viewer)
Introductie
Windows houdt verschillende logboeken bij met gebeurtenissen die er op het systeem plaatsvinden. Iedere keer als er iets bijzonders op het systeem gebeurt wordt dat daarin geregistreerd. Je kan denken aan simpele acties als het starten en stoppen van bepaalde programma's, tot aan foutcodes die cruciale informatie over een probleem kunnen geven.
Ik heb een speciale pagina gewijd aan de tool die je kunt gebruiken om gebeurtenissen te bekijken.
Logs bekijken
Je kan de logboeken bekijken met
Logboeken (Event Viewer)
.
In het linkerdeel van het scherm zie je een aantal categorieën, maar
de belangrijkste zijn Toepassing (Application)
en
Systeem (System)
.
(In Windows 7 zijn die een subcategorie van
Windows-logboeken (Windows Logs)
.)
Als je op zo'n categorie klikt zie je rechts alle gebeurtenissen (events)
die met die categorie te maken hebben.
Als je specifiek op zoek bent naar problemen zou je door de lijst kunnen
bladeren op zoek naar events van type Fout (Error)
(1e kolom).
De events staan standaard gesorteerd op datum, maar je kan ook klikken op
Niveau (Type)
,
waarna alle foutmeldingen keurig op een rijtje staan (gesorteerd op datum).
In Windows 7 is er een speciale categorie voor alle waarschuwingen en fouten:
Beheergebeurtenissen (Administrative Events)
binnen
Aangepaste weergaven (Custom Views)
Je kan de inhoud van een event bekijken door er op te dubbelklikken.
In het wat grotere vak op het tabblad
Gebeurtenis (Event)
in Windows XP, en op het tabblad
Algemeen (General)
in Windows 7
staat dan wat er aan de hand was.
Als je veel meer gedetailleerde informatie over een bepaalde melding wilt kan je naar de site Troubleshooting Microsoft Windows Event Logs (eventid.net) gaan.
Ik ben zelf ook bezig een lijst te maken van events die ik tegenkom, waarvan ik denk dat ze van belang zijn en waarvan ik de betekenis al dan niet ken. Maar die is nog maar zeer beperkt.
Logs door een ander laten bekijken
Als je zelf niets snapt van de inhoud van de meldingen kan je de inhoud op een forum op Internet plaatsen, of een vriend inschakelen.
De logs kunnen in principe op een andere PC worden bekeken, hoewel sommige meldingen specifiek zijn voor een bepaald programma. Als dat programma niet op de andere PC geinstalleerd is, kan er niet zoveel over de gebeurtenis gezegd worden als wanneer je hem op de oorspronkelijke PC zou bekijken.
Controleer op vreemde programma's
Introductie
Geen enkele virusscanner is perfect, en hoe voorzichtig je ook bent,
er kan altijd een akelig programma op je PC belanden.
Je kan bv. onmogelijk weten welke websites 100% veilig zijn.
Maar ook programma's van gerenommeerde fabrikanten (zoals Adobe, van
Acrobat Reader
) kunnen voor problemen zorgen.
Het is daarom bijzonder verstandig om af en toe te kijken welke programma's er dingen uitspoken op je PC. Je kan zowel kijken naar programma's die actief zijn op het moment dat je kijkt, als naar programma's die alleen draaien tijdens het starten van de PC (maar nadat ze hun taak volbracht hebben, bv. controleren op updates, niet meer actief zijn).
Naast normale programma's moet je tegenwoordig ook nog rekening houden met
programma's die bv. geintegreerd zijn in de (web)browser, zoals
(Internet Explorer
,
Firefox
of Google Chrome
).
Het gaat hierbij om BHO's (Browser Helper Objects), add-ons, extensions, etc.
Handige hulpmiddelen
Voor het eerste categorie (programma's die nu draaien) zou je kunnen werken met
Taakbeheer (Task Manager)
, dat in elke versie
van Windows aanwezig is, of met het veel betere
Process Explorer
.
Voor de tweede (programma's die actief zijn tijdens de startfase, browser
toevoegingen e.d.) kan je het beste werken met
Autoruns
.
In beide situaties (maar vooral de 1e) is ook
Msconfig
enigszins bruikbaar.
Dit programma is net als Taakbeheer (Task Manager)
in elke versie van Windows aanwezig, maar laat in vergelijking met
Autoruns
maar een fractie van de informatie zien.
Het programma
HijackThis
(de naam klinkt niet betrouwbaar, maar het programma is
dat gegarandeerd wel) is ook een echte aanrader.
Controleer op corrupte Windows-componenten
Introductie
Overal op een computer can corruptie ontstaan, en dus ook in de componenten
van Windows (die via Windows Update zijn opgehaald??!).
Net zoals je de bestanden van Windows kan controleren met
System File Checker
, is er
ook een tool om de componenten te controleren.
T/m Windows 7 heette deze tool de
System Update Readiness
tool.
Ik heb al enige aandacht besteed aan het
logbestand dat uit deze tool komt.
De tool zelf moet je downloaden, en is geen standaardonderdeel van Windows.
De opvolger zit wel standaard in Windows (8 en hoger), en heet
Deployment Image Servicing and Management tool
.
Hieronder beschrijf ik hoe je kunt controleren of er problemen zijn, hoe je ze kunt repareren, tegen welke problemen je aan kunt lopen en waar je meer informatie kunt vinden.
DISM
is een mooie aanvulling op
SFC
, en dat zie je in dit
voorbeeld.
Controleren op problemen
Om te beginnen moet je een commandoregel met verhoogde permissies openen.
Daarna tik je het volgende commando in:
DISM.exe /Online /Cleanup-image /ScanHealth
Het kan makkelijk 5 a 10 minuten duren voor de operatie voltooid is. Waarschijnlijk krijg je eerst een regel in beeld met iets van 20% (voltooid), en pas veel later de 100%.
Als je een hele snelle controle wilt kan je de optie
/ScanHealth
vervangen door
/CheckHealth
.
Alleen wordt er in het 2e geval niets gelogd.
In het 1e geval gaat er uitvoer naar het bestand
CBS.log
.
Als alles goed is krijg je een melding als de volgende:
C:\WINDOWS\system32>DISM.exe /Online /Cleanup-image /ScanHealth
Deployment Image Servicing and Management tool
Version: 10.0.10586.0
Image Version: 10.0.10586.0
[==========================100.0%==========================]
No component store corruption detected.
The operation completed successfully.
C:\WINDOWS\system32>
Reparatie van corrupties
Tik op de commandoregel (zie vorige sectie) het volgende commando in:
DISM.exe /Online /Cleanup-image /RestoreHealth
Dit kan nog iets langer duren dan alleen de scan.
Hou rekening met 10 a 15 minuten.
De resultaten vind je weer in het bestand
CBS.log
.
Problemen met DISM
Restore operation failed
Je krijgt de volgende melding na een poging tot reparatie:
The restore operation failed. Either the repair source was
not found or the component store cannot be repaired.
Error: 0x800f081f
DISM failed. No operation was performed.
For more information, review the log file.
Component store corrupted
Je krijgt deze melding:
Error: 14098
The Component Store has been corrupted.
Meer informatie
In dit Microsoft artikel nog wat meer informatie.
En dit artikel geeft veel voorbeelden en meer toelichting.
Voorbeeld
Op mijn Windows 8 computer vond
System File Checker
problemen, maar kon ze niet repareren:
C:\WINDOWS\system32>sfc /scannow
Beginning system scan. This process will take some time.
Beginning verification phase of system scan.
Verification 100% complete.
Windows Resource Protection found corrupt files but was unable to fix some
of them. Details are included in the CBS.Log windir\Logs\CBS\CBS.log. For
example C:\Windows\Logs\CBS\CBS.log. Note that logging is currently not
supported in offline servicing scenarios.
DISM
vond ook problemen, en zegt dat ze 'repairable'
zijn:
C:\WINDOWS\system32>DISM.exe /Online /Cleanup-image /ScanHealth
Deployment Image Servicing and Management tool
Version: 6.3.9600.17031
Image Version: 6.3.9600.17031
[==========================100.0%==========================]
The component store is repairable.
The operation completed successfully.
Het uitvoeren van de reparatie-actie levert de volgende uitvoer op:
C:\>DISM.exe /Online /Cleanup-image /RestoreHealth
Deployment Image Servicing and Management tool
Version: 6.3.9600.17031
Image Version: 6.3.9600.17031
[==========================100.0%==========================]
The restore operation completed successfully. The component store corruption was
repaired.
The operation completed successfully.
En toen ik daarna SFC nog een keer uitvoerde vond die ook geen problemen meer.
Voorbeeld 2 (Windows 10)
Ik had al een corruptie met System
File Checker
opgeruimd, en ging toen kijken wat deze tool zei:
C:\WINDOWS\system32>DISM.exe /Online /Cleanup-image /ScanHealth
Deployment Image Servicing and Management tool
Version: 10.0.15063.0
Image Version: 10.0.15063.0
[==========================100.0%==========================] The component store is repairable.
The operation completed successfully.
Er zijn ook hier problemen, dus:
C:\WINDOWS\system32>DISM.exe /Online /Cleanup-image /RestoreHealth
Deployment Image Servicing and Management tool
Version: 10.0.15063.0
Image Version: 10.0.15063.0
[===========================95.3%======================= ]
Error: 0x800f0906
The source files could not be downloaded.
Use the "source" option to specify the location of the files that are required to
restore the feature.
For more information on specifying a source location,
see http://go.microsoft.com/fwlink/?LinkId=243077.
The DISM log file can be found at C:\WINDOWS\Logs\DISM\dism.log
Zoeken in de kennisdatabase van Microsoft
Microsoft heeft een zogenaamde Knowledge base, waarin allerlei artikelen zitten over mogelijke problemen. Die artikelen hebben een nummer dat tegenwoordig vaak 7 cijfers lang is.
De artikelen zijn ook te vinden als je zoekt met Google op bv. een foutmelding, maar dan moet je ze maar zien te vinden tussen alle andere bagger (hoewel ze vaak wel vrij hoog in de lijst met resultaten staan). Je kan dus veel beter rechtstreeks op de site van Microsoft support zoeken.
Een voorbeeld van een naam van een artikel is
http://support.microsoft.com/kb/2579295/en-us
De code aan het eind (en-us
) geeft de taal aan.
Hetzelfde artikel, maar dan in het Nederlands, heet
http://support.microsoft.com/kb/2579295/nl-nl
De laatste tijd waren een flink aantal van deze artikelen door een vertaalmachine naar het Nederlands vertaald, en dat was goed te merken. De vertaling was van een belabberde kwaliteit. Het zojuist genoemde artikel lijkt echter in redelijk goed Nederlands te zijn opgesteld, dus misschien is Microsoft van deze dwaling (vertaalmachines) teruggekomen.
Als je rechtsboven een aantal zoektermen, of een foutmelding invoert kan je
afgezien van het soort artikelen hierboven ook tegen antwoorden op forums
aanlopen, met een naam in de trant van
http://answers.microsoft.com/en-us/ie/forum/ie9-windows_vista/internet-explorer-9/da53c66c-b29b-4941-8dc0-d81adf1a181a
of tegen nog heel ander materiaal.
Handig is dat mensen punten kunnen geven aan goede antwoorden, zodat je die
er dus makkelijker uit kunt halen.
Maar je hebt desondanks vaak het meest aan de echte KB-artikelen.
Onderaan de artikelen kan je vaak zien op welke Windows-versies het artikel van toepassing is.
Fix it
Verder staat tegenwoordig bij veel artikelen een icoontje van een soort
mechanicien met de tekst Microsoft Fix it
.
Als je daar op klikt wordt de oplossing voor het probleem in het artikel
automatisch doorgevoerd op je PC.
Tenminste, dat is de bedoeling. Ik heb het tot nu toe 1 keer geprobeerd, maar zoals bij ongeveer alles wat Microsoft automatisch probeert te repareren was ook dit weer een mislukking van bijbelse proporties. Ik kreeg de volgende melding:
Troubleshooting cannot proceed
The troubleshooter has experienced an unexpected error and cannot continue.
Explore additional solutions online
Get solutions related to this troubleshooter
Klikken op de link leidt naar een webpagina waar je geen mm verder mee komt.
Maar voor wie nog enig vertrouwen in Microsoft heeft, of wie liever niet zelf gaat zitten prutsen, die kan het proberen. Wie weet...
Probeer schoon opstarten (een clean boot)
Introductie
Net zoals je veilige modus (safe mode) kan gebruiken om te zien of je een PC nog kan starten als dat normaal niet meer lukt (of als je bv. wilt verhinderen dat een virus actief wordt), kan je een clean boot gebruiken om precies te bepalen waar het probleem zit.
Je doet dat door te beginnen met Windows zo minimaal mogelijk te starten. Deze methode is dus onbruikbaar als je Windows helemaal niet meer kunt starten.
De procedure wordt beschreven in de volgende Microsoft Knowledgebase artikelen: 929135 en Engelse versie voor Vista, Windows 7 en Windows 8, en in 310353 en Engelse versie voor Windows XP.
Voor Windows XP is er ook nog artikel 316434 en Engelse versie dat misschien meer over het werkelijke troubleshooten gaat dan de XP-artikelen hierboven.
Het voordeel van de Microsoft-artikelen is dat er ook wat plaatjes bij staan, maar er zitten een paar onduidelijkheden in (afhankelijk van je beginsituatie). Wat ze in de 1e stap proberen te doen (onder Windows 7) lukt tenminste op mijn systeem niet (zonder dat ik iets doe wat zij niet vertellen).
In het Engelse Microsoft-artikel zit zelfs een filmpje waarin de procedure beschreven wordt.
Ik zal proberen de procedure zo simpel mogelijk te beschrijven, en hem op meerdere systemen uit te testen.
N.B.: Onderstaande geldt alleen voor Windows 7!! Voor Windows XP verschilt de procedure nauwelijks, en kan je de combinatie van onderstaande beschrijving en het bovenstaande Microsoft-artikel gebruiken.
Minimale start (Windows 7)
Klik op Start - Uitvoeren (Run)
, en tik dan in
msconfig
, gevolgd door Enter
Wat je wilt bereiken is dat programma's die normaal uit zichzelf starten
dat nu niet meer doen.
Dat doe je door
Selectief opstarten (Selective startup)
te
selecteren.
Verder moet alleen het middelste vinkje (bij
Opstartonderdelen laden (Load startup items)
)
weggehaald worden/zijn (de andere 2 moeten er staan!!).
N.B. Niet op Toepassen (Apply)
klikken!!!
Op het tabblad Services
wil je alle services
uitschakelen behalve die van Microsoft.
Klik daarvoor eerst op
Alle Microsoft-services verbergen
(Hide all Microsoft services)
, en dan op
Alles uitschakelen (Disable all)
Klik tenslotte op OK
Herstart nu de PC om te kijken of het probleem verholpen is.
Zo nee, dan bereik je niets met deze methode en kan je de oude waarden terugzetten, zo ja, ga dan verder met de volgende stap.
Testen of een service de boosdoener is
We gaan nu met een test-and-trial methode proberen of 1 van de niet-Microsoft services de oorzaak is.
Start msconfig
opnieuw, en ga naar het
tabblad Services
Klik weer op
Alle Microsoft-services verbergen
(Hide all Microsoft services)
Je hebt nu een lijstje met uitgeschakelde niet-Microsoft services op je scherm staan. Stel dat het er 12 zijn, zet dan een vinkje voor 6 van de services.
Herstart de PC opnieuw. Als het probleem wel weer optreedt, dan ligt het dus aan 1 van de 6 services die je hebt ingeschakeld, anders *misschien* aan 1 van de 6 die nog niet is ingeschakeld.
In het 1e geval schakel je er van de 6 weer 3 uit, herstart, etc.
In het 2e geval schakel je er van de 6 uitgeschakelde 3 weer in, herstart, etc.
Uiteindelijk heb je of de boosdoener gevonden, of je hebt ze alle 12 weer ingeschakeld en het probleem treedt nog steeds niet op. Dan heeft het dus niet te maken met een van die 12 services, en kan je doorgaan met de volgende stap.
Testen of een start-programma de boosdoener is
We gaan nu (na een herstart en msconfig
starten)
hetzelfde proces uithalen met het
Opstarten (Startup)
-tabblad.
Bij mij staan daar bv. 15 items in. Zet vinkjes voor de helft ervan (bv. 8), herstart, en kijk of het probleem optreedt.
Zo ja, dan zit het probleem bij 1 van de 8, zo nee, dan schakel je nog eens 3 of 4 van de overgebleven 7 in.
Precies hetzelfde liedje als met de services dus.
Als alle start-programma's zijn ingeschakeld, en het probleem treedt nog steeds niet op, dan heb je een hoop werk verricht en ben je geen steek opgeschoten :-).
De oude situatie herstellen
Start msconfig
, ga naar het tabblad
Algemeen (General)
, en selecteer
Normaal opstarten (Normal startup)
Herstart de PC, en alles zou weer bij het oude moeten zijn.
Vergelijk 2 computers met elkaar
In bepaalde situaties, bv. als een programma niet wil starten, of als het een foutmelding geeft (en al dan niet doorgaat), zou je de volgende strategie kunnen toepassen. Je moet dan wel 2 computers met dezelfde versie van Windows tot je beschikking hebben.
Registreer op beide systemen wat er gebeurt tijdens (ik hou dit even als
voorbeeld aan) het fout gaan van een installatie.
Je gebruikt daarvoor
Process Monitor
.
Process Monitor
is bepaald geen eenvoudige tool,
alleen al vanwege de overweldigende hoeveelheid uitvoer.
In 1e instantie zou je een filter kunnen maken zodat alleen alle regels die
betrekking hebben op het installatieprogramma vertoond worden.
Als dat een .MSI
-bestand is zou je moeten kijken
naar msiexec.exe
(de MicroSoft Installer).
Vervolgens ga je door beide traces heen tot het punt waar ze uit elkaar gaan lopen. In veel gevallen zal alleen de trace van het installatieprogramma niet voldoende informatie geven, en moet je dus het filter weer weghalen. Je krijgt dan wel weer veel meer regels, maar je weet inmiddels rond welke tijd het probleem optreedt.
Mark Russinovich, 1 van de makers van de System Internals tools, beschrijft hier een mooi eenvoudig voorbeeld van hoe je zo'n probleem kan aanpakken.
Hij gebruikt veel duidelijke plaatjes om alle stappen te illustreren, en het hele verhaal is maar ruim 2 A4-tjes. Uiterst leerzaam en zeer aan te raden (zoals veel van zijn artikelen).
Uitvinden waar een GUID (bv. {26EE0668-A00A-44D7-9371-BEB064C98683}) bij hoort
Introductie
Een GUID (Globally Unique IDentifier) is een getal van 16 bytes dat vaak op de (hexadecimale) manier als in de titel wordt geschreven. Aangezien 2 hexadecimale cijfers voor 1 byte staan, zijn het dus groepjes van 4-2-2-2-6 bytes.
GUID's worden geacht wereldwijd uniek te zijn, maar dat is niet gegarandeerd. Ze worden min of meer willekeurig gegenereerd, en gebruikt als identificatie voor allerlei onderdelen in Windows, zoals application identifiers en class identifiers. Veel van deze concepten, zoals classes, komen uit (object-georienteerd) programmeren, en zullen niet-programmeurs dus niet veel zeggen.
Desondanks zijn er veel foutmeldingen en gebeurtenissen (events) in Windows die zo'n GUID bevatten, en je zou dan graag willen weten waar dat GUID mee te maken heeft. Ik kreeg zelf recentelijk een foutmelding met bovenstaande GUID, zonder verwijzing naar een programma o.i.d.
Zoeken in het register
Al deze GUID's zijn in principe gedefinieerd in het register. Pas op dat het register cruciaal is voor Windows, dus breng niet opzettelijk of per ongeluk wijzigingen in het register aan (tenzij je goed weet wat je doet)!!
Zoeken kan in principe geen kwaad, en dat kan als volgt.
Meestal hoef je niet de hele GUID in te tikken (als je hem tenminste niet kan kopiëren en plakken), maar zijn de 1e 4 bytes, of de 1e 2 groepjes (4-2) voldoende.
Met bovengenoemde GUID waren de 1e 4 bytes (26EE0668) inderdaad voldoende geweest. Aan de rechterkant zie je nu een aantal waarden (in mijn geval 7), en toen was snel duidelijk om welk programma het ging.
Ik kreeg o.a. de volgende regels:
Name Type Data
(Default) REG_SZ Control Panel
System.AppUserModel.ID REG_SZ Microsoft.Windows.ControlPanel
System.AppUserModel.RelaunchCommand REG_SZ %SystemRoot%\system32\control.exe
De melding gaat dus over het
Configuratiescherm (Control Panel)
.
Het volledige probleem wordt
hier beschreven.
Problemen met een DLL verhelpen met REGSVR32
2 types bestanden die ongelooflijk belangrijk zijn in Windows zijn
DLL
-files en OCX
-files.
DLL staat voor Dynamic Link Library, en OCX voor ActiveX Controls (Ole Control
eXtension, waarbij OLE weer staat voor Object Linking and Embedding).
Verschillende computerprogramma's voeren vaak dezelfde acties uit. Bijna elk programma moet wel eens een bestand openen of opslaan, moet kunnen afdrukken (printen), etc.
De stukken programma die dat soort acties kunnen doen hoeven niet door elke
programmeur opnieuw geschreven te worden, maar zijn door Microsoft ondergebracht
in bibliotheekbestanden, de DLL
-files.
Je hoeft alleen maar de naam van de DLL
-file te weten,
en de naam van het stukje programma in dat bestand wat je nodig hebt (bv.
om iets af te drukken), en je kan vanuit een willekeurig ander programma
die programmacode aanroepen.
Informatie over al die bibliotheekbestanden wordt opgeslagen in het register. Ooit is die informatie er in gezet door Windows, of door een later geïnstalleerd programma.
Maar soms gaat er iets mis met die informatie, of raakt er iets in het register corrupt. En in dat geval moet de informatie over het bestand opnieuw op de goede manier in het register gezet worden.
En daarmee komen we bij het programma REGSVR32
(REGistreer SERver).
Je kan zo'n bibliotheekbestand nl. goed zien als een server.
Het programma dat iets wil afdrukken is de client, en vraagt de server (het
DLL
-bestand) om het uit te voeren.
De werking van REGSVR32
Een goede beschrijving van het programma vindt je op de site van Microsoft (Engelse versie).
Hier een korte samenvatting, maar ook extra info.
Om te beginnen moet je een commandoregel openen.
Stel we willen nu het bestand henk.dll
registreren.
Dan tikken we in:
regsvr32 henk.dll
gevolgd door Enter
Eventuele foutmeldingen die je krijgt kan je opzoeken in bovenstaand Microsoft artikel.
Soms moet je eerst deregistreren, om daarna weer te registreren.
Deregistreren gaat als volgt:
regsvr32 /u henk.dll
gevolgd door Enter
Problemen met een DLL- of OCX-bestand
Als je weet dat je problemen hebt met een DLL- of OCX-bestand, zoals ik
in dit geval (met
ActionCenter.dll
), kan je proberen het bestand
te deregistreren en daarna weer te registreren.
Besef dat dit redelijk riskante acties zijn (ene DLL
is belangrijker dan de andere), en dat je Windows er mee om zeep kunt helpen.
Maak dus sowieso vooraf een herstelpunt!!!
Voorbeeld
The module "actioncenter.dll" was loaded but
the entry-point DllUnregisterServer was not
found.
Make sure that "actioncenter.dll" is a valid DLL
or OCX file and then try again.
OK
DllUnregisterServer in actioncentercpl.dll
succeeded.
OK
DllRegisterServer in actioncentercpl.dll
succeeded.
OK
Windows foutcodes (o.a. 0x8.......)
Er zijn 2 hoofdcategorieën foutcodes:
- Degenen die met 0x8 beginnen, en na de '8' nog 7 cijfers hebben;
- De resterende foutcodes, die uit een normaal getal bestaan.
Van die resterende codes heb ik tot nu toe 5 categorieën kunnen ontdekken:
- Codes die je krijgt in
Apparaatbeheer
; - Foutcodes bij het installeren van programma's ( Windows Installer)
- Een lijst met codes tussen 600 en 800 die met netwerken te maken moeten hebben, maar ook TLS en Winsock foutcodes;
- Foutcodes van Taakbeheer (Task Scheduler);
- Alle andere (systeem) foutcodes;
- Wininet codes (12001 t/m 12156).
Ik beschrijf in dit stuk ook hoe je een code tussen verschillende getalstelsels kan omzetten.
0x8.......
Iedereen zal bij het werken met Windows (bv. tijdens Windows Update) wel
eens foutcodes zijn tegengekomen die er uit zien als
0x8007064C
Ze bestaan altijd uit '0x' (om aan te geven dat het om hexadecimale getallen gaat), dan een '8', en tenslotte 7 cijfers en letters tussen 'A' en 'F'. (Soms kan het handig zijn een hexadecimaal getal naar decimaal om te zetten, of omgekeerd, of naar octaal, etc.)
Er zijn ontelbare van deze foutcodes, en bij elke numerieke foutcode (zoals
die hierboven) hoort ook een textuele foutmelding
die iets begrijpelijker is voor de normale
sterveling, zoals ERROR_ILLEGAL_CHARACTER
(alleen wordt die meestal niet weergegeven).
Waar toepasselijk zal ik op mijn pagina's een tabel met codes opnemen die op dat onderwerp betrekking hebben (zie bv. de pagina over Windows Update), maar hieronder volgen ook nog een paar links naar zeer uitgebreide lijsten op Internet.
Foutcodes met een andere (normalere) layout dan 0x8.......
Sommige foutcodes (systeem foutcodes) kan je als volgt in iets begrijpelijks vertalen.
Tik in: net helpmsg foutcode
, gevolgd door
Enter
Probeer bv. net helpmsg 55
, en je krijgt:
The specified network resource or device is no longer
available.
Deze methode werkt in elk geval in Windows XP, Vista en Windows 7.
Als je liever deze codes op een pagina op Internet wilt opzoeken, dan moet je
gaan naar de site van about.com
Daar worden de codes van 1 t/m 15299 beschreven.
Foutcodes in apparaatbeheer
Zie het stuk op de pagina
over Apparaatbeheer (Device Management)
Foutcodes bij het installeren van programma's (Windows Installer)
In deze sectie heb ik links naar enige lijsten met codes, de meeste 4-cijferig met een waarde tot maximaal in het begin van de 3000-serie.
Netwerk foutcodes
Verschillende soorten foutcodes die met netwerken te maken hebben (zoals Transport Layer Security en Winsock) kan je op mijn pagina over netwerken vinden.
Foutcodes van Taakbeheer (Task Scheduler)
Zie deze pagina.
Wininet codes (12001 t/m 12156)
Deze codes hebben vooral betrekking op Internet protocollen Gopher, FTP en HTTP. Misschien maken ze ook al deel uit van 1 van de andere lijsten, maar voor de zekerheid neem ik ze hier toch maar op.
Ze staan beschreven in Microsoft artikel 193625.
Getallen omzetten van decimaal naar hexadecimaal e.d.
Er zijn verschillende getalstelsels. De niet-wiskundigen onder ons hoeven zich hier niet druk over te maken, behalve dan dat het soms (bv. bij foutcodes) handig kan zijn getallen uit het ene stelsel om te zetten in een ander.
De meest gebruikte stelsels zijn (in volgorde van belangrijk naar minder) decimaal (beginnen met een cijfer tussen 1 en 9), octaal (beginnen met een 0), hexadecimaal (beginnen met 0x) en binair (geen idee hoe die weergegeven worden). Binaire getallen zijn heel lang, omdat je een getal met alleen maar nullen en enen mag weergeven.
Om ze om te zetten klik je op
Start - Uitvoeren (Run)
, en tik dan in
calc
, gevolgd door Enter
Klik op Beeld (View) - Wetenschappelijk (Scientific)
onder Windows XP, en op
Weergave (View) - Programmeren (Programmer)
onder
Windows 7.
Klik op Hex, Dec, Oct
of
Bin
, afhankelijk van het getal waarmee je begint
(dus bv. Hex
als je zo'n '0x8.......' getal wilt
omzetten naar decimaal).
Voer het getal in, en klik dan op het getalstelsel waarnaar je het getal wilt omzetten. That's all, folks.
Case: Een (bijna) hangende XP
Beschrijving van het probleem
Ik word al tijden geteisterd door een Windows XP PC die of helemaal hangt (reageert nergens meer op), of zodanig hangt dat er soms een kwartier of langer helemaal niets gebeurt als je een toets indrukt of ergens op klikt.
Dat maakt troubleshooten van deze PC ook bijzonder lastig. Op zo'n moment wil ik bv. graag kunnen zien of er een programma is dat de CPU zwaar belast.
Ik heb zelfs meerdere keren meegemaakt dat na een herstart de PC goed lijkt te
functioneren, maar ik een bepaald programma start (bv.
Autoruns
)
van Microsoft, en de zaak weer hangt.
En het is vrijwel uitgesloten dat dit programma de oorzaak is.
Beschrijving van het opsporen van de oorzaak
Zoveel mogelijk overbodige programma's uitschakelen
Ik geloof dat ik uiteindelijk in veilige modus alle niet echt noodzakelijke programma's heb uitgeschakeld.
Verder voorlopig maar even Autoruns
niet gestart,
hoewel hij het nu wel weer probleemloos doet.
Onderdelen testen
Er zouden bestanden van Windows corrupt kunnen zijn geraakt.
De beste manier om dat te testen is
System File Checker
.
Het leverde niets op.
De PC heeft 2 fysieke disks en 3 logische (disks/partities). Als daar rotte plekken op zitten zou dat ook voor veel vertraging kunnen zorgen.
Ik heb er met chkdsk
inmiddels 2 getest, maar de belangrijkste (Windows)-partitie nog niet.
Ik heb de R-optie gebruikt, zodat ook de oppervlakte van de schijf getest
wordt, en niet alleen de bestandsstructuren.
Ik heb het devmgmt console geopend,
maar Apparaatbeheer (Device Management)
laat ook
geen vreemde dingen zien.
Bestanden en programma's analyseren
Het is nu 3 maart, en de volgende stap die ik ga zetten is goed onderzoeken wat er nu nog actief is.
Overigens is sinds het uitschakelen van de overbodige programma's nog geen hang meer voorgekomen.
Wat wel opvalt is dat de service van mijn virusprogramma MBAM (MBAMservice) wel erg vaak erg veel CPU-tijd gebruikt (20 a 40%).
Sites met vaak goede antwoorden op vragen
- superuser.com
- stackoverflow.com
- serverfault.com
- tenfoums.com
- Speciaal voor vragen over Windows 10.
Links
- Troubleshooting Microsoft Windows Event Logs (eventid.net)
- Veel technische informatie over bijna alle event codes.
Gebruikers vullen hier hun eigen ervaringen in over de omstandigheden waarin zij tegen een bepaalde foutmelding zijn aangelopen. Verder zijn er verwijzingen naar artikelen in de Microsoft kennisdatabase. - 89 pagina's met Windows 32 error codes
- De lijst is doorzoekbaar, maar ik vind het allemaal niet erg gebruikersvriendelijk.
- Ruim 5000 foutcodes
- Deze lijken vooral te maken te hebben met een of ander grafisch programma, wat niet wil zeggen dat ze niet ook op andere plaatsen in Windows zouden kunnen optreden.
- Netwerk foutcodes (network error messages)
- Een lijst met foutcodes met waardes tussen 600 en 800 die op een pagina over Windows XP staan.
- NTSTATUS codes van de Windows .NET Server 2003 RC2 DDK
- Een vrij lange lijst met 8-cijferige hexadecimale codes, waaronder ook een aantal van de 0x8-codes.
- WMI Error Constants
- Een lijst met 0x8-error-codes die met WMI te maken hebben.
- WinSxS Folder (Component Store) - Analyze in Windows 8.1
- Met DISM de status van de WinSxS-map bekijken. Dit is een zeer cruciale map in Windows. De info is voor Windows 8.1 en hoger (niet in Windows 8!!).
Reageer via E-mail (dalmolen@xs4all.nl)
Deze pagina is voor het laatst gewijzigd op: 11-02-23 22:38:15