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/ingest met 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\runs met 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.