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.
Wat het installeert en waar
C:\Program Files\Diagnose Agent\metdiagnose-runner.ps1,install-runner-task.ps1,collect.ps1,collect-rmm.ps1en een LEESMIJ.- De registersleutel
HKLM\SOFTWARE\RektPump AI\Diagnose AgentmetInstallFolder,Version,ServerenTaskName; 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 taakdiagnose-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
| Eigenschap | Verplicht | Betekenis |
|---|---|---|
SERVER | bij de eerste installatie | https:// adres van de diagnose-server; bij een upgrade leest het MSI de vorige waarde uit het register |
TOKEN | bij de eerste installatie | het runnertoken van de tenant; verborgen eigenschap, in het MSI-log staat TOKEN = **********; bij een upgrade wordt het bestaande tokenbestand hergebruikt |
POLLSECONDS | nee, standaard 5 | polltijd van de runner, minimaal 2 |
NOAUTOUPDATE | nee | NOAUTOUPDATE=1: de runner werkt zichzelf niet bij; een nieuwe runner is dan een nieuw MSI |
UPDATETHUMBPRINT | nee | sha1-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
msiexec /i DiagnoseAgent-0.3.2.msi SERVER=https://diagnose.rektpump.com TOKEN=<runnertoken> /qn /l*v C:\Windows\Temp\diagnose-agent.logmsiexec /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.logOver 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 registerwaardeVersiononderHKLM\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:
$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.ExitCodeUpgrade en verwijderen
msiexec /i DiagnoseAgent-<nieuwe versie>.msi /qn /l*v C:\Windows\Temp\diagnose-agent.logEen 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.
msiexec /x DiagnoseAgent-0.3.2.msi /qn /l*v C:\Windows\Temp\diagnose-agent-uninstall.logOf 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*vvan 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=1of 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.