Oude bestandsversies vreten ongemerkt je SharePoint-opslag op.
SharePoint bewaart standaard tot 500 versies van elk document — en elke versie telt mee voor opslag waarvoor je betaalt. Zit de tenant vol, dan rekent Microsoft extra opslag af per gigabyte, per maand, zonder einddatum. TrimVersions365 meet de versie-ballast per bibliotheek en laat je gratis zien wat een opschoonbeleid oplevert. De Pro-versie verwijdert precies wat het voorbeeld je liet zien. Alleen oude versies. Verder niets — aantoonbaar.
| Bibliotheek | Bestanden | Versies | Versieopslag (schatting) | Terug te winnen onder beleid |
|---|---|---|---|---|
| Documents | 12.480 | 148.352 | 486,2 GB | 401,7 GB |
| Finance – Invoices | 8.912 | 41.006 | 58,9 GB | 37,4 GB |
| Projects – Delivery | 4.206 | 96.733 | 322,5 GB | 279,8 GB |
| Marketing – Assets | 2.394 | 31.118 | 189,3 GB | 152,6 GB |
| HR – Policies | 517 | 6.041 | 4,8 GB | 3,1 GB |
De gratis analyse. De kolom "opbrengst" is de rendementsberekening.
Het probleem
Versiegeschiedenis is de opslagpost die op geen enkele factuur staat.
Elke keer dat iemand een document opslaat, kan SharePoint de vorige staat bewaren als volwaardige historische versie. De standaardlimiet is 500 hoofdversies per bestand, zonder vervaldatum — en elke versie telt op volledige bestandsgrootte mee voor het opslagquotum van je tenant. Een presentatie van 40 MB waar een team twee weken aan schaaft, wordt zo geruisloos gigabytes aan geschiedenis.
Microsoft weet het. De eigen documentatie bij de nieuwere "automatische" versieverloopinstelling toont in het rekenvoorbeeld 96% minder versieopslag over zes maanden, vergeleken met kale aantallenlimieten. Maar die instelling stuurt alleen de toekomst: hem aanzetten schoont de versies die je bibliotheken al hebben opgebouwd niet op. De achterstand blijft staan — en die achterstand is meestal de grootste opslagverbruiker van allemaal.
Je hebt drie uitwegen: elke maand extra opslag bijkopen, echte documenten verwijderen, of oude versies opschonen. Slechts één daarvan kost niets terugkerends en vernietigt niets dat iemand zal missen.
De rekensom, uitgesplitst
Extra SharePoint-opslag ~USD 0,20 / GB / maand
1 TB versie-ballast ~USD 205 / maand
~USD 2.458 / jaar
TrimVersions365 Pro €349, eenmalig
USD 0,20/GB/maand is de gangbaar vermelde commerciële prijs van Microsofts add-on "Office 365 Extra File Storage"; jouw prijs kan per regio en contract verschillen. Bronnen staan in de FAQ (V7 en V8).
Zo werkt het
Scannen. Beleid kiezen. Voorbeeld bekijken. En dan pas — opschonen.
TrimVersions365 is een webonderdeel op een pagina in je eigen site. Geen console, geen PowerShell, geen goedkeuringsscherm voor beheerders.
De huidige versie van elk bestand. Elk document. Elke map. Elke lijst of bibliotheek. Er bestaat geen codepad om ze te verwijderen — niet uitgeschakeld, niet verstopt: afwezig. Het verificatiescript in je download bewijst dat op precies het pakket dat je installeert.
laatste 10 versies bewaren + ouder dan 365 dagen verwijderen
Je kiest dit per opschoontaak opnieuw. Bij de prullenbak kun je herstellen tot deze wordt geleegd.
Huidige versies, documenten en mappen kan dit programma niet selecteren — de verwijderaanroep bestaat niet in de code.
Veiligheidsaudit
Dit programma verwijdert dingen. Hier is de volledige lijst van wat het kan aanroepen.
De meeste hulpprogramma's vragen om vertrouwen. Wij publiceren in plaats daarvan de tabel met netwerkaanroepen. TrimVersions365 doet exact de onderstaande aanroepen — niets anders — en wordt geleverd met een verificatiescript dat het gecompileerde pakket scant dat je daadwerkelijk installeert, en hard faalt zodra deze lijst ooit groeit. Eén rij is destructief. Lees juist die rij goed; die rij ís het product.
| # | Aanroep | Wat het doet | Destructief? |
|---|---|---|---|
| 1 | GET /_api/web/lists?$filter=BaseTemplate eq 101 | Somt de documentbibliotheken van de site op | Nee — alleen-lezen |
| 2 | POST /_api/web/lists(guid'…')/RenderListDataAsStream (gepagineerd) | Somt bestanden pagina voor pagina op — een lezende query (dezelfde aanroep als SharePoints eigen lijstweergaven) | Nee — lezende query |
| 3 | GET /_api/web/GetFileByServerRelativePath(…)/Versions | Leest de versiegeschiedenis van één bestand (leeftijd, grootte) | Nee — alleen-lezen |
| 4 | GET /_api/web/GetFileByServerRelativePath(…)?$select=CheckOutType,… | Controleert elk bestand opnieuw vlak vóór het opschonen (bescherming tegen uitgecheckte of intussen gewijzigde bestanden) | Nee — alleen-lezen |
| 5 | POST /_api/web/GetFileByServerRelativePath(…)/Versions/DeleteByID(vid=…) | Verwijdert ÉÉN oude bestandsversie (Pro, uitsluitend na een goedgekeurde what-if) | Ja — maar alleen een bestandsversie. Nooit een bestand, map, document of bibliotheek. |
| 6 | POST /_api/web/lists + item-schrijfacties (verborgen lijst "TrimVersions365Jobs", eenmalig aangemaakt) | Bewaart de voortgang van opschoontaken in je eigen site, zodat taken kunnen hervatten | Nee — schrijft alleen taakstatus |
| 7 | POST https://license.trimversions365.com/validate | Valideert de Pro-licentiesleutel. Het enige verzoek dat je tenant ooit verlaat; het bevat de licentiesleutel en je tenant-hostnaam — meer niet | Nee — licentiecontrole |
Aanroepen 1–6 gaan naar je eigen SharePoint-tenant en draaien met de rechten van de aangemelde gebruiker — het programma kan nooit iets wat die gebruiker niet ook handmatig zou kunnen.
Versieverwijderingen worden in het Microsoft 365-auditlogboek toegeschreven aan de aangemelde gebruiker, dus je compliancespoor blijft intact — ongeacht welke verwijderoptie je kiest.
Elke opschoontaak vraagt je te kiezen: prullenbak (de standaard) stuurt verwijderde versies eerst naar de prullenbak van de site voordat ze definitief worden opgeruimd, waarna de opslag vrijkomt zodra de prullenbak leeg is; permanent verwijdert ze meteen definitief, net als bij Microsofts eigen opschoontaken. In beide gevallen laat de verplichte what-if vooraf precies zien wat er verwijderd gaat worden.
$ node verify-compiled-package.js trimversions365.sppkg
Unpacking package … ok (1 bundle, 214 KB)
Scanning compiled JavaScript for network endpoints …
GET /_api/web/lists read
POST /_api/web/lists(guid)/RenderListDataAsStream read-style query
GET …/GetFileByServerRelativePath(…)/Versions read
GET …/GetFileByServerRelativePath(…)?$select=… read (pre-trim re-check)
POST …/Versions/DeleteByID(vid) DELETE: file versions only
POST /_api/web/lists (job-state list) write: job state
POST https://license.trimversions365.com/validate license check
Checking for file/folder/item/library delete endpoints … none found
Checking for recycle-bin purge endpoints … none found
RESULT: PASS — 1 destructive endpoint type (file versions only)
De uitvoer van het verificatiescript is Engelstalig; dit is de letterlijke uitvoer.
Bij elke download zit verify-compiled-package.js. Draai het tegen precies het .sppkg-bestand dat je installeert — vóórdat je het installeert. Geloof ons niet. Controleer het.
Het alternatief
Een PowerShell-script verwijdert óók versies. Dat is nou juist het probleem.
| Een doorsnee opschoonscript of -tool | TrimVersions365 |
|---|---|
| Draait met beheerders- of app-rechten — één typefout verwijderd van schade op tenantniveau | Draait als de aangemelde gebruiker, in één site, met de rechten die die gebruiker al heeft |
| Verwijdert wat de code deze keer toevallig zegt | Kan maar één destructief endpoint aanroepen: bestandsversie verwijderen. Controleerbaar in het geleverde pakket |
| Een voorbeeld — als iemand aan een -WhatIf heeft gedacht | Het what-if-voorbeeld is verplicht vóór elke run — het is niet te omzeilen |
| Sterft zodra de sessie eindigt; begint op nul of draait dubbel | Voortgang staat in een verborgen lijst in de site; taken hervatten na een gesloten tabblad |
| Beukt op de API tot de throttling toeslaat | Respecteert Retry-After, neemt gas terug, past zijn verzoektempo aan — volgens Microsofts throttlingrichtlijnen |
| Niemand leest de uitvoer; niemand kán dat | Eindrapport: teruggewonnen GB's, overgeslagen bestanden met reden, te exporteren als CSV |
Voor wie
Gemaakt voor degene die de opslagwaarschuwing in de mailbox krijgt.
De Microsoft 365-beheerder
De opslagbalk bij Actieve sites kleurt oranje, inkoop vraagt waarom de opslagkosten blijven stijgen, en security keurt geen tool goed die om Graph-machtigingen vraagt. Deze vraagt er geen — en je kunt vóór installatie bewijzen wat hij doet.
De IT-manager die cloudkosten snijdt
Extra File Storage is een terugkerende regel op de factuur; versie-ballast is daar meestal het leeuwendeel van. Een tool van €349 eenmalig die een maandelijkse post schrapt, verdient zichzelf in weken terug. De gratis analyse geeft je het exacte terugverdiengetal voordat je een cent uitgeeft.
De Microsoft-partner of MSP
Draai de gratis analyse in een klantworkshop en lever dezelfde middag een besparingsrapport per bibliotheek op. Opschoontaken vragen één Pro-licentie per klanttenant — overzichtelijke licenties voor projectwerk.
Installatie
Binnen vijf minuten op een pagina in je site.
verify-compiled-package.js
De gratis versie is het volledige pakket — geen sleutel, geen e-mailmuur. Het verificatiescript staat ernaast. Geloof ons niet. Controleer het.
- 1Upload trimversions365.sppkg naar de App Catalog van je tenant. (Desgewenst eerst: draai het verificatiescript tegen het pakket.)
- 2Voeg de app toe aan je site en zet het webonderdeel "TrimVersions365" op een willekeurige pagina.
- 3Klik op Scannen. Voor de gratis analyse is geen licentiesleutel nodig.
- 4Pro nemen? Plak je licentiesleutel in de instellingen van het webonderdeel — opschonen werkt per direct.
Prijs
Minder dan twee maanden Microsofts adviesprijs voor 1 TB extra opslag. De gratis analyse vertelt je vooraf precies wat je terugverdientijd is.
Gratis meet. Pro schoont op.
De gratis versie is de complete analyse — ze berekent je rendement op de betaalde versie. Geen sleutel, geen proefperiode die afloopt, geen verminkte cijfers.
| Functie | Gratis | Pro |
|---|---|---|
| Alle documentbibliotheken van een site scannen | ✓ | ✓ |
| Aantallen bestanden en versies per bibliotheek | ✓ | ✓ |
| Versieopslag per bibliotheek (gemeten of gelabelde schatting) | ✓ | ✓ |
| What-if-berekening van de opbrengst voor elk beleid | ✓ | ✓ |
| Analyse exporteren als CSV | ✓ | ✓ |
| Opschoontaken uitvoeren (laatste N bewaren / ouder dan D dagen / beide) | — | ✓ |
| Uitsluitingsregels voor bibliotheken en paden | — | ✓ |
| Hervatbare taken — voortgang overleeft een gesloten tabblad | — | ✓ |
| Throttlingbewuste engine (Retry-After, adaptief tempo) | — | ✓ |
| Eindrapport met reden per overgeslagen bestand, CSV-export | — | ✓ |
| Prijs | €0 | €349 eenmalig per tenant |
Vragen
De lastige vragen, zonder omhaal beantwoord.
Waarom is mijn SharePoint-opslag vol terwijl ik niet veel bestanden heb toegevoegd?
Bijna altijd door versiegeschiedenis. Elke keer dat je opslaat, blijft de vorige versie bewaard, en standaard bewaart SharePoint tot 500 versies per bestand — dus één grote PowerPoint op versie 735, of duizenden alledaagse documenten, kan ongemerkt honderden GB of enkele TB aan je quota toevoegen. TrimVersions365 meet gratis precies hoeveel van je opslag uit oude versies bestaat, per bibliotheek.
Is het veilig om oude SharePoint-versies te verwijderen — verlies ik mijn huidige document?
De huidige versie valt nooit binnen de scope. TrimVersions365 verwijdert altijd alleen oude bestandsversies, nooit een document, map, lijstitem of de actuele versie — het gecompileerde pakket heeft geen codepad om een huidig bestand te verwijderen, en de verifier in je download bewijst dat. Elke opschoning begint met een verplichte what-if die jij goedkeurt, en je kunt opgeschoonde versies naar de prullenbak sturen (herstelbaar) in plaats van ze meteen definitief te verwijderen.
Kan ik zien hoeveel opslag ik terugkrijg voordat ik iets verwijder?
Ja — dat is precies de gratis versie. Kies een beleid (bijvoorbeeld "bewaar de laatste 10 versies" of "niets ouder dan 2 jaar") en het toont de exacte GB die je per bibliotheek terugwint, met CSV-export. Geen sleutel, geen betaling, niets verwijderd. Is dat getal klein, dan is het eerlijke antwoord: koop Pro niet.
Hoe verminder ik SharePoint-opslag zonder de opslag-add-on te kopen?
Schoon de oude versies op waar je nu voor betaalt. Microsofts Extra File Storage-add-on kost ongeveer € 0,20 per GB per maand — voor altijd terugkerend — terwijl veel van die ruimte gewoon historische versies zijn die niemand nodig heeft. TrimVersions365 wint die terug met een eenmalige aankoop, dus een tenant met een terabyte aan versie-ballast bespaart al gauw zo'n € 2.000–€ 3.000 per jaar aan add-onkosten.
Ik heb de versielimiet verlaagd, maar mijn opslag daalde niet. Hoe kan dat?
Omdat het aanpassen van de versielimiet alleen toekomstige opslagacties beïnvloedt — het verwijdert nooit met terugwerkende kracht de versies die je bibliotheken al bevatten. Dat verrast veel beheerders. Om bestaande opslag echt terug te winnen, moet je de achterstand opschonen, en dat is precies wat TrimVersions365 doet: het meet en verwijdert de oude versies die al in elke bibliotheek staan, veilig en met eerst een voorbeeld.
Kan TrimVersions365 ooit een document, map of huidige versie verwijderen?
Nee — en je hoeft ons niet op ons woord te geloven. Het gecompileerde pakket bevat precies één destructief endpointtype: SharePoints eigen verwijderfunctie voor bestandsversies. Er bestaat geen codepad dat bestanden, mappen, lijstitems, bibliotheken of huidige versies verwijdert, en het verificatiescript in je download (verify-compiled-package.js) scant exact het .sppkg-bestand dat je installeert en faalt zodra dat ooit verandert. De buildpijplijn draait diezelfde controle bij elke release.
Wat gebeurt er met de opgeschoonde versies? Kan ik ze terughalen?
Dat kies je zelf, één keer per opschoontaak. Elke run heeft een keuzeschakelaar: "Verwijderde versies naar de prullenbak (aanbevolen, herstelbaar)" — opgeschoonde versies gaan naar de prullenbak van de site, dezelfde plek als wanneer je een versie handmatig verwijdert via de versiegeschiedenis van SharePoint; tot de prullenbak wordt geleegd, kun je ze daar terugzetten, en de opslag komt volledig vrij zodra ze de prullenbak verlaten — of "Permanent verwijderen (opslag komt direct vrij)" — opgeschoonde versies worden op het moment van de run definitief verwijderd, hetzelfde gedrag als Microsofts eigen opschoontaken voor beheerders, en de opslag komt meteen vrij. De schakelaar staat standaard op Prullenbak, omdat herstelbaar het veiligste startpunt is. In beide gevallen laat de verplichte what-if vooraf precies zien wat er verwijderd gaat worden, en huidige versies vallen nooit binnen de scope. Wil je bovenop de prullenbak nog een vangnet? Schoon dan eerst conservatief op (bijvoorbeeld "ouder dan 730 dagen"), controleer het resultaat en scherp het beleid daarna aan.
Welke machtigingen heeft het nodig — en welke gegevens verlaten onze tenant?
Het vraagt nul API-machtigingen: geen Microsoft Graph-scopes, geen Entra-appregistratie, niets op de goedkeuringspagina voor API-toegang. Het draait in de browser als de aangemelde gebruiker; wie op Opschonen klikt, heeft dezelfde verwijderrechten nodig als voor het handmatig verwijderen van een versie (doorgaans Bewerken/Bijdragen op de bibliotheek). Er verlaat precies één netwerkverzoek ooit je tenant: de Pro-licentiecontrole naar license.trimversions365.com, met daarin de licentiesleutel en je tenant-hostnaam — meer niet. Geen bestandsnamen, geen inhoud, geen aantallen, geen telemetrie. Bij de gratis versie verlaat helemaal niets de tenant.
Wij hebben bibliotheken met honderdduizenden versies. Hoe lang duurt zo'n opschoning — en wat als het tabblad sluit?
Grote taken duren uren; dat is natuurkunde op een gethrottelde API, en daar is de engine op gebouwd. Hij enumereert per pagina, verwijdert versie voor versie in een adaptief tempo en bewaart na elk bestand de voortgang in een verborgen lijst in je site. Laptop dicht, wifi weg, door IT opnieuw opgestart — open de pagina en de taak biedt aan verder te gaan waar hij bleef. Bestanden die uitgecheckt of vergrendeld zijn wanneer ze aan de beurt komen, worden netjes overgeslagen en met reden vermeld in het eindrapport, zodat je later alleen voor de achterblijvers opnieuw kunt draaien.
Vertraagt het SharePoint of raakt onze tenant erdoor gethrotteld?
De engine volgt Microsofts gepubliceerde throttlingrichtlijnen: antwoordt SharePoint met 429 of 503, dan leest hij de Retry-After-header, wacht minstens zo lang, probeert opnieuw met exponentiële backoff en jitter, en houdt minder verzoeken tegelijk open tot de dienst weer comfortabel is. Throttling beschermt de andere gebruikers van je tenant — de engine behandelt een throttlesignaal dus als instructie, niet als obstakel. In de praktijk: een opschoontaak draait beleefd op de achtergrond en duurt op een drukke tenant simpelweg wat langer. Plan grote taken 's avonds als je haast hebt.
Waarom wil het een verborgen lijst in mijn site aanmaken?
Om één reden: hervatbaarheid. De voortgang van opschoontaken staat in een verborgen SharePoint-lijst ("TrimVersions365Jobs") in de site die wordt opgeschoond — je gegevens blijven in je tenant, en een taak kan hervatten nadat het tabblad sloot. Voor het aanmaken van die lijst is het recht "lijsten beheren" nodig, dat site-eigenaren hebben. Kan de aangemelde gebruiker geen lijsten aanmaken, dan schakelt de tool automatisch terug: de voortgang staat dan in de lokale opslag van de browser — hervatten lukt dan op dezelfde machine en browser, maar niet vanaf een andere. Niets geeft een foutmelding; je ziet alleen een melding over de beperktere hervatgarantie.
Doet Microsoft dit niet al met automatisch versieverloop?
Deels — voor de toekomst. Microsofts "automatische" versiegeschiedenis-instelling (en de nieuwere aantal-/vervallimieten) bepaalt hoeveel versies nieuwe activiteit bewaart, en Microsofts eigen voorbeeld toont zo'n 96% minder versieopslag over zes maanden. Maar limieten aanpassen schoont de bestaande achterstand niet op, en Microsofts achterstandstool is een PowerShell-taak voor beheerders die permanent verwijdert en waarvan de datumgestuurde modus niet aan versies jonger dan 30 dagen mag komen en niets kan bewaren van vóór januari 2023. TrimVersions365 pakt de achterstand aan met een interface, per bibliotheek, met uitsluitingen en een verplicht voorbeeld — en werkt prima naast automatische limieten: wat Microsoft al voor verloop heeft ingepland, is er simpelweg niet meer om op te schonen. Versies onder een bewaarbeleid of juridische bewaarplicht worden door SharePoint zelf beschermd; de tool slaat ze over en vermeldt dat in het rapport. Microsofts eigen pagina's: learn.microsoft.com/sharepoint/set-default-org-version-limits (versielimieten) en learn.microsoft.com/sharepoint/trim-versions (de achterstandstool).
Hoe nauwkeurig is de opslagschatting?
Waar SharePoint echte groottes per versie prijsgeeft, telt de analyse die op — dat is een meting, geen schatting. Waar dat niet kan, toont de tool een duidelijk gelabelde bovengrens-schatting (huidige bestandsgrootte × aantal historische versies) en zegt dat ook in de kolomkop. Elke bibliotheek kun je naast SharePoints eigen pagina Opslaggegevens leggen (Site-instellingen → Opslaggegevens); de cijfers horen te omsluiten wat je daadwerkelijk terugwint. Microsoft documenteert de rekensom achter versieopslag op learn.microsoft.com/sharepoint/plan-version-storage; de exacte prijs van de add-on "Office 365 Extra File Storage" zie je bij aankoop in het Microsoft 365-beheercentrum (learn.microsoft.com/microsoft-365/commerce/add-storage-space).
Wat is precies gratis, en waarvoor is Pro nodig?
Gratis: de complete scan en what-if — elke bibliotheek, echte aantallen, de opbrengstberekening voor elk beleid dat je maar wilt, CSV-export. Verloopt nooit en vraagt geen sleutel. Pro: het daadwerkelijk uitvoeren van opschoningen, uitsluitingen, hervatbare taken en het eindrapport. Die grens is bewust gekozen: de gratis versie vertelt je in euro's wat de betaalde versie je waard is. Is dat getal klein, koop hem dan niet — dat is de eerlijke uitkomst.
Kunnen we één licentie voor meerdere tenants gebruiken? En als een sleutel uitlekt?
Een licentie is gekoppeld aan één tenant-hostnaam (zoals contoso.sharepoint.com) — daar vraagt de checkout om en daarop controleert de validatie. Bureaus en MSP's kopen één Pro-licentie per klanttenant. Sleutels zijn intrekbaar: lekt er een uit, mail support en we geven een nieuwe uit voor jouw tenant en trekken de oude in. Het webonderdeel bewaart een geslaagde validatie 7 dagen in de cache en verdraagt netwerkstoringen met een respijtperiode van 14 dagen (gerekend vanaf de laatste geslaagde validatie) voordat Pro op slot gaat, dus een hapering van de licentieserver onderbreekt nooit een opschoontaak.
Wat is het restitutiebeleid? En werkt dit op klassieke sites?
Restitutie: die is er niet. De gratis analyse laat vooraf al precies zien wat je terugwint en wat je terugverdientijd is voor jouw tenant — er is dus niets te beoordelen ná aankoop dat je niet al vooraf kon zien — en de licentiesleutel ontgrendelt Pro meteen bij betaling. Daarom is elke Pro-aankoop definitief. Werkt je installatie echt niet, mail dan [email protected] met je ordernummer — we helpen je hem werkend te krijgen, maar de aankoop zelf wordt niet terugbetaald. Klassieke sites: het webonderdeel heeft een moderne pagina nodig om op te staan, maar moderne pagina's zijn toe te voegen aan klassieke teamsites, en de scan dekt de documentbibliotheken van die site daarna zoals elke andere. Bij publishing-portals bestaan randgevallen; draai eerst de gratis analyse — werkt die, dan werkt Pro.