21-2-2013: script is geupdate omdat er een } ontbrak waardoor het script niet correct functioneerde
Het kan je bijna niet ontgaan zijn het iOS probleem wat een grote impact heeft op Exchange omgevingen. Voor de ene omgeving zal het erger zijn als de andere omgeving en ook zullen beheerders op verschillende manieren actie hebben ondernomen.
Apple heeft gister een update voor iOS uitgebracht waarin het issue zou worden opgelost of dit daadwerkelijk zo is is op dit moment nog even afwachten. Echter zijn er nog geen negatieve berichten te lezen op internet dus het lijkt echt opgelost te zijn.
Opschoonproces
En nu? Veel Exchange omgevingen zijn door de bug in iOS vervuild geraakt. Nu het issue met iOS dus is opgelost is het tijd om een grote opschoonactie te houden.
Om het e.e.a. op te ruimen moeten we eerst inzichtelijk krijgen welke mailboxen daadwerkelijk last hebben van het issue. Hiervoor kan gebruik gemaakt worden van het Powershell cmdlet Get-MailboxStatistics met de volgende parameters Username, TotalItemSize en TotalDeletedItemSize.
Vervolgens kunnen we met deze output het item opzoeken wat het probleem veroorzaakt. Hiervoor kan gebruik gemaakt worden van het cmdlet Get-MailboxFolderStatistics. Omdat de items worden opgeslagen in de recoverableitems map van de mailbox dient dit als folderscope opgegeven te worden. Daarnaast dient de optie analysis opgegeven te worden. Hiermee kunnen we het item traceren wat het meest voorkomt in de recoverableitems map.
Om daadwerkelijk van het items af te komen kun je gebruik maken van het cmdlet search-mailbox.
IOS6 cleanup script
Zoals je merkt aardig wat stappen om de boel op te ruimen. Omdat dit voor grote omgevingen erg lastig is besloot ik een script te maken de betreffende mailboxen opzoekt, het probleem item opzoekt en het optioneel verwijderd. Het script doorzoekt de Exchange omgeving per database. Dit omdat ik in de praktijk heb gezien dat vooral het opschonen van de mailbox veel logging kan creëren. Dit laatste kan grote gevolgen hebben voor de storage, is er namelijk onvoldoende ruimte dan zal de database gedismount worden. Dit willen we uiteraard niet monitor daarom goed de beschikbare schijfruimte tijdens het opschoon proces.
Het script is te downloaden via het Technet ScriptCenter of via de link onderaan deze pagina.
In de huidige versie zijn de volgende functionaliteiten beschikbaar:
- doorzoeken van de opgegeven database
- rapport creëren van de gebruikers waarvan de deleted item size groter is dan een vooraf opgegeven waarde
- rapport per gebruiker met daarin de output van de analyse
- automatisch exporteren van het item naar een van te voren opgegeven mailbox en daarna verwijderen van het item uit de mailbox
Maar hoe moet je het script uitvoeren? Als eerst is het belangrijk om te weten welke parameters we kunnen gebruiken:
- database, de naam van de mailboxdatabase die doorzocht moet worden
- minsize, de minimale omvang van de deleted items
- topsubjectcounter, hoevaak moet een items minstens voorkomen
- autoclean, voert een search-mailbox uit en verwijderd het item na het geëxporteerd te hebben naar de opgegeven mailbox
- userreport, moet er een rapport aangemaakt worden
- targetmailbox, waar moeten de items naar geëxporteerd worden
Stel we willen de database MBDB01 doorzoeken waarvan de omvang van de deleted items meer dan 1 GB is. Vervolgens willen we de items die meer dan 1000 keer in de recoverableitems staan opschonen. Om ervoor te zorgen dat we ook een overzicht krijgen welke mailboxen worden opgeschoond willen we een rapport krijgen met daarin de betreffende gebruikers met daarin de totale mailbox omvang en de omvang van de deleted items.
Om bovenstaande uit te voeren dient het script als volgt uitgevoerd te worden:
.\IOS6.ps1 -database MBDB01 -minsize 1024 -topsubjectcount 1000 -autoclean $true -userreport $true
Disclaimer: het gebruiken van dit script is geheel op eigen risico. Door gebruik te maken van de autocleanup functionaliteit kan er data verloren gaan. Het is daarom aan te raden het script eerst in een test omgeving uit te proberen voordat het in een productieomgeving wordt gebruikt.
Tijdens het opschoon proces kan een grote hoeveelheid logging worden aangemaakt het is daarom noodzakelijk om de omgeving te monitoren wanneer dit wordt uitgevoerd.
Mocht je nog dingen missen in het script of vragen hebben stel deze dan gerust.




