Services en ControlSets
Alle informatie over de Windows services staan opgeslagen in het register in de volgende sleutel onder een ControlSet.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Een ControlSet bevat alle informatie en configuratie instellingen van de Windows drivers en services, als we het register openen en naar de bovengenoemde sleutel navigeren zien we het volgende.
- HKEY_LOCAL_MACHINE\SYSTEM
- ControlSet001
- ControlSet002
- CurrentControlSet
De CurrentControlSet is een exacte kopie van één van de ControlSet00X die wordt gebruikt tijdens het opstarten van Windows.
Wanneer er in de CurrentControlSet wijzigingen worden aangebracht zullen deze automatisch worden doorgevoerd in de 'mirrors' de ControlSet00X sleutels.
Maar hoe weten we nu welke ControlSet de gebruikte 'mirror' is van de CurrentControlSet en welke 'mirror' er gebruikt wordt voor de 'Laatst goed werkende configuratie' / 'The Last Known Good Configuration'?
Hiervoor navigeren we in het register naar de sleutel: HKEY_LOCAL_MACHINE\SYSTEM\Select Op deze afbeelding zien we de volgende onder deze registersleutel.
- HKEY_LOCAL_MACHINE\SYSTEM\Select
- Current
- Default
- Failed
- LastKnownGood
De waarde "Failed" geeft aan welke ControlSet heeft gefaald bij de laatst keer opstarten, staat deze waarde op 0 en verwijst deze niet naar een ControlSet dan geeft dit aan dat er geen problemen zijn geweest.
De waarde "LastKnownGood" verwijst naar de ControlSet002 die gebruikt wordt 'Laatst goed werkende configuratie' / 'The Last Known Good Configuration' die gekozen kan worden bij het opstarten van Windows.
Services en het register
Elke aanwezige 'service' in Windows staat in een aparte sleutel onder: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services waar de ingestelde waarden staan opgeslagen.
DWORD waarde "Start" bepaald het opstartype van een service, hiervoor zijn er vijf instellingen mogelijk.
- 00000000 - Bootlevel driver / de service wordt geladen door het opstartlaadprogramma.
- 00000001 - De service wordt geladen tijdens het initialiseren van de kernel.
- 00000002 - Service start automatisch op tijdens het opstarten van Windows.
- 00000003 - Service staat op handmatig ingesteld, zodat bij interactie van de gebruiker of een programma deze wordt gestart.
- 00000004 - Service staat uitgeschakeld.
- 00000000 - De service wordt niet vertraagd opgestart.
- 00000001 - De service wordt vertraagd opgestart.
Services 'Svchost' en 'Applicaties
Sommige services worden geladen door een eigen applicatie en andere services worden weer geladen door svchost.exe die deze in een bepaalde servicegroep zal plaatsen.
Als een service door een applicatie of uitvoerbaar bestand wordt gestart kan je dit zien aan de tekenreeks 'ImagePath" die aanwezig is, in deze tekenreeks staat de locatie van het uitvoerbare bestand vermeld zoals bijvoorbeeld VMware NAT service
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMware NAT Service]
"ImagePath"=C:\Windows\system32\vmnat.exe
Als services worden gestart door svchost.exe dan worden deze service in een bepaalde servicegroep geplaatst, deze groepen zijn terug te vinden in de volgende sleutel: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost
Elke servicegroep kan dus meerdere services bevatten die zijn gestart, met het commando tasklist /SVC kan je een overzicht verkrijgen van de geladen services door svchost.exe en bij welke servicegroep deze behoren.
Het bestand van een service wat is geladen onder een servicegroep staat vemeld in een tekenreeks in de volgende sleutel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename\Parameters
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Appinfo]
"ServiceDll"=%SystemRoot%\System32\appinfo.dll
Op een eenvoudige manier kan je de services loggen die zijn geladen onder svchost.exe
1. Ga naar start>uitvoeren en type CMD
2. Geef achter de prompt de volgende regel op.
- tasklist /svc >>C:\svclog.txt
Code: Selecteer alles
Imagenaam Proces-i Services
========================= ======== ============================================
svchost.exe 644 DcomLaunch, PlugPlay, Power
svchost.exe 748 RpcEptMapper, RpcSs
svchost.exe 800 AudioSrv, Dhcp, eventlog,
HomeGroupProvider, lmhosts, wscsvc
svchost.exe 884 AudioEndpointBuilder, CscService, Netman,
PcaSvc, SysMain, TrkWks, UxSms, wudfsvc
svchost.exe 924 Appinfo, BITS, Browser, gpsvc, IKEEXT,
iphlpsvc, LanmanServer, MMCSS, ProfSvc,
Schedule, SENS, ShellHWDetection, Themes,
Winmgmt, wuauserv
svchost.exe 320 EventSystem, fdPHost, netprofm, nsi,
W32Time, WdiServiceHost
svchost.exe 376 CryptSvc, Dnscache, LanmanWorkstation,
NlaSvc
svchost.exe 1240 BFE, DPS, MpsSvc
svchost.exe 1668 FDResPub, SSDPSRV
svchost.exe 2984 PolicyAgent
svchost.exe 3676 WinDefend
De schakeloptie /SVC geeft de lijst met actieve services in elk proces weer.
Als je meer wilt weten over een proces, typ je de volgende opdracht en drukt je op ENTER:
Tasklist /FI "PID eq processID" (inclusief de aanhalingstekens)
Meer informatie over de servicegroepen staan bij de volgende links beschreven.
- AxInstSVGroup
- bthsvcs
- DcomLaunch
- defragsvc
- imgsvc
- LocalService
- LocalServiceAndNoImpersonation
- LocalServiceNetworkRestricted
- LocalServiceNoNetwork
- LocalServicePeerNet
- LocalSystemNetworkRestricted
- NetSvcs
- NetworkService
- NetworkServiceAndNoImpersonation
- NetworkServiceNetworkRestricted
- PeerDist
- regsvc
- RPCSS
- SDRSVC
- secsvcs
- swprv
- WbioSvcGroup
- wcssvc
- WerSvcGroup
Services aanpasen met SC.exe
Met het standaard aanwezige SC.exe kunnen er via uitvoeren en de commandprompt van Windows de services aangepast worden met de volgende mogelijkheden.
Services die een spatie bevatten in de naam dienen altijd tussen "" haakjes geplaatst te worden, services zonder spaties hoeven niet tussen "" haakjes geplaatst te worden maar dit is geen probleem als dat wel gedaan wordt.
- SC START servicenaam / "service naam"
- SC PAUZE servicenaam / "service naam"
- SC CONTINUE servicenaam / "service naam"
- SC STOP servicenaam / "service naam"
- SC DELETE servicenaam / "service naam"
- SC CONFIG servicenaam / "service naam" start=boot
- DWORD waarde register = 00000000
- SC CONFIG servicenaam / "service naam" start=system
- DWORD waarde register = 00000001
- SC CONFIG servicenaam / "service naam" start=auto
- DWORD waarde register = 00000002
- SC CONFIG servicenaam / "service naam" start=demand
- DWORD waarde register = 00000003
- SC CONFIG servicenaam / "service naam" start=disabled
- DWORD waarde register = 00000004