Collector: collect.ps1
Een PowerShell-script (versie 0.3.0) dat op de probleemmachine draait, alleen leest, niets wijzigt en een geredigeerde bundel schrijft.
Wat het verzamelt
- Logboeken
- Critical, Error en Warning uit 18 logs over de laatste 5 dagen, plus geselecteerde informatieve ID's (boots, shutdowns, crashes, updates, MSI, netwerk). Security alleen 4625, 4740 en 4771 en alleen als administrator of SYSTEM.
- Systeem
- OS, build, boottijd, uptime, RAM- en CPU-belasting, pending reboot, fast startup.
- Schijven
- Volumes (vrij, health) en fysieke schijven (health, temperatuur, slijtage, fouten; tellers alleen als administrator).
- Betrouwbaarheid
- Reliability Monitor-records en stabiliteitsindex.
- Updates
- Hotfixes, Windows Update-historie met resultaatcodes, mislukte installaties.
- Services en processen
- Gestopte automatische services, sleutelservices, top CPU (2 s meting), top geheugen, niet-reagerende processen.
- Opstart en software
- Opstartitems, niet-Microsoft geplande taken, recent geïnstalleerde software, security- en beheersoftware.
- Netwerk
- Adapters, IP, gateway, DNS, ping naar gateway en internet, DNS-resolutie, proxy.
- Dumps en Defender
- Minidumps, MEMORY.DMP, LiveKernelReports, WER-rapporten, Defender-status, printers, energie.
- Fouten
- Alles wat de collector niet kon lezen staat in
errors, inclusief contextmeldingen. Een logboek dat op die Windows-editie niet bestaat telt niet als fout.
Wat het maskeert
Voor het schrijven van bundle.json: gebruikersnamen (uit C:\Users, lokale accounts, de uitvoerende gebruiker en als SYSTEM ook de consolegebruiker), de hostnaam, het domein, e-mailadressen en publieke IPv4-adressen. privé-IP's blijven staan. Berichtteksten uit logboeken kunnen nog paden, bestandsnamen of applicatienamen bevatten. In uploadmodus wordt de sleutel met de echte namen (redaction_map.json) niet geschreven.
Hoe het draait
- Windows PowerShell 5.1 en PowerShell 7; 15 tot 60 seconden.
- Als SYSTEM (RMM-context) komen per-gebruiker gegevens uit de registerhive van de actieve consolegebruiker; die gebruikersnaam wordt mee gemaskeerd.
- Start een RMM het script in een 32-bit PowerShell, dan herstart het zichzelf via sysnative in de 64-bit host.
- In uploadmodus:
PUT /api/ingestmet Bearer-token over TLS 1.2, drie pogingen; daarna wordt de bundel op het endpoint verwijderd, ook na een mislukte upload. De uitvoermap is dan%ProgramData%\diagnose\runsmet een ACL voor alleen SYSTEM en Administrators. - Onder AppLocker of WDAC in ConstrainedLanguage stopt het meteen met een
DIAG_RESULT: FAILED-regel.
Bekende beperkingen
- Momentopname: CPU, geheugen en processen zijn gemeten tijdens het verzamelen.
- Zonder administrator ontbreken Security-events en SMART-tellers.
- Een versienummer in de vorm 1.2.3.4 wordt als IP herkend en gemaskeerd.
- Registry-installatiedatums van software zijn onbetrouwbaar.
- Als SYSTEM zonder aangemelde gebruiker ontbreken per-gebruiker gegevens; dat staat dan in
errors.
Meedoen met de pilot
De pilot start op maandag 13 oktober 2026 met vijf tickets. Deelname voor de eerste deelnemers is gratis; u heeft alleen een RMM of een Microsoft-route nodig die een PowerShell-script als SYSTEM kan draaien.