Diagnose Agent (MSI) 0.3.2

Het installatiepakket voor de werkplek, voor wie geen RMM heeft of de servicedesk zonder RMM-job wil laten werken. Het pakket bevat geen nieuwe code: het verpakt de bestaande scripts en roept de bestaande installer aan als SYSTEM.

DiagnoseAgent-0.3.2.msi

84 KB, versie 0.3.2, gebouwd 2026-10-16, niet ondertekend. sha256: f5a510fb9263a4dd1b84e1cbf2f931969570d9b79a8821d768adae94012aefde (als bestand)

Download de MSI

Wat het installeert en waar

  • C:\Program Files\Diagnose Agent\ met diagnose-runner.ps1, install-runner-task.ps1, collect.ps1, collect-rmm.ps1 en een LEESMIJ.
  • De registersleutel HKLM\SOFTWARE\RektPump AI\Diagnose Agent met InstallFolder, Version, Server en TaskName; nooit het token. Dit is de detectiesleutel voor Intune, GPO en RMM's.
  • Een vermelding in Programma's en onderdelen.
  • Door het installatiescript, als SYSTEM: C:\ProgramData\diagnose\ (alleen SYSTEM en Administrators) met een kopie van de runner, het tokenbestand en later het log, en de geplande taak diagnose-runner. De taak start de kopie in ProgramData, zodat de auto-update die kopie vervangt en het bestand onder Program Files de versie van het MSI blijft.

Eigenschappen

Eigenschappen van het MSI
EigenschapVerplichtBetekenis
SERVERbij de eerste installatiehttps:// adres van de diagnose-server; bij een upgrade leest het MSI de vorige waarde uit het register
TOKENbij de eerste installatiehet runnertoken van de tenant; verborgen eigenschap, in het MSI-log staat TOKEN = **********; bij een upgrade wordt het bestaande tokenbestand hergebruikt
POLLSECONDSnee, standaard 5polltijd van de runner, minimaal 2
NOAUTOUPDATEneeNOAUTOUPDATE=1: de runner werkt zichzelf niet bij; een nieuwe runner is dan een nieuw MSI
UPDATETHUMBPRINTneesha1-vingerafdruk(ken) van het certificaat waarmee nieuwe runnerversies gesigneerd moeten zijn; niet samen met NOAUTOUPDATE

Ontbreekt SERVER of TOKEN bij een eerste installatie, dan stopt het MSI met een Nederlandse foutmelding (exitcode 1603) voordat er iets op de schijf staat. Weigert de server het token, dan mislukt de installatie en draait bij een eerste installatie de rollback: er blijft geen taak achter die met een verkeerd token blijft proberen. Mislukt een upgrade, dan zet msiexec de vorige versie terug en blijven haar taak en token staan. Een onbereikbare server is geen fout: de taak staat dan en de runner blijft proberen.

Stille installatie met msiexec

Als administrator of als SYSTEM
msiexec /i DiagnoseAgent-0.3.2.msi SERVER=https://diagnose.rektpump.com TOKEN=<runnertoken> /qn /l*v C:\Windows\Temp\diagnose-agent.log
Met opties
msiexec /i DiagnoseAgent-0.3.2.msi SERVER=https://diagnose.rektpump.com TOKEN=<runnertoken> POLLSECONDS=10 NOAUTOUPDATE=1 /qn /l*v C:\Windows\Temp\diagnose-agent.log

Over het token op de opdrachtregel: de custom action is een deferred actie van msiexec; de regel komt niet in de PowerShell-geschiedenis en niet in het MSI-log. Wel is hij tijdens de paar seconden dat het script draait zichtbaar in de proceslijst voor wie op dat moment als administrator meekijkt. Wie dat niet wil, installeert met het script en -TokenFile of -SecureToken (zie Agent en runner).

Intune

LOB-app
het MSI uploaden als Line-of-business-app; Intune leest ProductCode en versie uit het pakket. Opdrachtregelargumenten: SERVER=https://diagnose.rektpump.com TOKEN=<runnertoken>; installatiecontext apparaat. Intune bewaart die regel in het beheerportaal; wie het token daar niet wil zien, kiest de Win32-vorm.
Win32-app
het MSI met IntuneWinAppUtil verpakken; installatieopdracht de msiexec-regel hierboven, verwijderopdracht msiexec /x, installatiegedrag Systeem; detectie op de registerwaarde Version onder HKLM\SOFTWARE\RektPump AI\Diagnose Agent (volgt de versie mee bij een upgrade), op de ProductCode, of met een script op de geplande taak. Vereisten: Windows 10 1809 of hoger, x64.

GPO

Software-installatie (toegewezen, vanaf een UNC-pad dat de computeraccounts kunnen lezen) kan geen eigenschappen meegeven. Twee uitwegen: een MST-transformatie die SERVER en TOKEN in de Property-tabel zet (de transformatie bevat het token leesbaar, dus dezelfde beperkte leesrechten als de share), of een opstartscript van de computer met de msiexec-regel, dat eerst de registerwaarde Version controleert om niet elke keer opnieuw te installeren.

Via een RMM

Elke RMM die een bestand kan uitrollen en een opdracht als SYSTEM kan draaien. Het token uit een geheime variabele van de RMM, nooit vast in een script dat in de scriptbibliotheek zichtbaar is. Voorbeeld met het token in de omgevingsvariabele DIAG_RUNNER_TOKEN:

Scriptbibliotheek
$msi = "C:\Windows\Temp\DiagnoseAgent-0.3.2.msi"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest -UseBasicParsing "https://ai.rektpump.com/downloads/DiagnoseAgent-0.3.2.msi" -OutFile $msi
$want = (Invoke-WebRequest -UseBasicParsing "https://ai.rektpump.com/downloads/DiagnoseAgent-0.3.2.msi.sha256").Content.Trim()
if ((Get-FileHash $msi -Algorithm SHA256).Hash.ToLower() -ne $want.ToLower()) { throw "sha256 van het msi klopt niet" }
$p = Start-Process msiexec.exe -ArgumentList ('/i "' + $msi + '" SERVER=https://diagnose.rektpump.com TOKEN=' + $env:DIAG_RUNNER_TOKEN + ' /qn /l*v C:\Windows\Temp\diagnose-agent.log') -Wait -PassThru
exit $p.ExitCode

Upgrade en verwijderen

Upgrade, zonder SERVER en TOKEN
msiexec /i DiagnoseAgent-<nieuwe versie>.msi /qn /l*v C:\Windows\Temp\diagnose-agent.log

Een nieuwer MSI over een bestaande installatie: de oude versie wordt verwijderd zonder de taak, het tokenbestand en de runnerkopie weg te halen; de nieuwe versie registreert de taak opnieuw. De runner is hoogstens de duur van de installatie weg. Een lagere versie wordt geweigerd. Let op: POLLSECONDS, NOAUTOUPDATE en UPDATETHUMBPRINT gelden niet automatisch door; geef ze bij de upgrade opnieuw mee als ze afwijken.

Verwijderen
msiexec /x DiagnoseAgent-0.3.2.msi /qn /l*v C:\Windows\Temp\diagnose-agent-uninstall.log

Of via Programma's en onderdelen. De taak, het tokenbestand en de scripts gaan weg; runner.log en de map C:\ProgramData\diagnose blijven staan. Op de server verdwijnt het apparaat niet vanzelf uit de lijst; het staat na een paar minuten op offline.

Logboeken

C:\Windows\Temp\diagnose-agent.log
alles van Windows Installer (de /l*v van msiexec); het token als sterretjes; de opdrachtregel van de custom actions verborgen
C:\Windows\Temp\diagnose-agent-install.log
de regels van het installatiescript (installatie, upgrade, verwijdering, rollback) met tijdstip; nooit het token
C:\ProgramData\diagnose\runner.log
de runner zelf: start, "server bereikbaar, token geaccepteerd", jobs, auto-update

Eerlijk over de grenzen

  • Het pakket is niet digitaal ondertekend. Een stille installatie vraagt daar niet om; bij dubbelklikken toont Windows een SmartScreen-waarschuwing, en AppLocker- of WDAC-beleid dat alleen ondertekende installers toelaat weigert het (uitweg: een hash-regel op de sha256). Ondertekening komt zodra de pilot een certificaat rechtvaardigt.
  • Standaard werkt de runner zichzelf bij vanaf de server. Daarmee vertrouwt de werkplek de server voor de code van de runner; wie dat niet wil zet NOAUTOUPDATE=1 of eist een handtekening.
  • Het pakket is op 16 oktober 2026 gebouwd (WiX 5) en zonder administrator gecontroleerd: uitpakken, tabellen, verborgen token. De echte installatie als administrator op een werkplek is nog niet gedaan; dat is onderdeel van de eerste pilotinstallatie.

Als het niet werkt: msiexec 1603 betekent meestal dat SERVER of TOKEN ontbreekt, het token verkeerd is, of dat C:\ProgramData\diagnose al bestaat met een andere eigenaar; lees dan diagnose-agent-install.log. Staat de taak wel maar het apparaat niet in de viewer, dan kan de werkplek de server niet bereiken als SYSTEM (proxy, firewall voor uitgaand https).

Meedoen met de pilot

Een pilot is vijf tickets met eerlijke feedback per run, gratis voor de eerste deelnemers. U heeft een Windows-werkplek nodig waarop u de agent als administrator mag installeren, of een RMM die een PowerShell-script als SYSTEM kan draaien.