Valid Blog

Migreren zonder hoofdpijn met PowerShell en Access

Geschreven door Maurice Heine | 14 jun, 2018

 In 2002 werkte ik als IT consultant voor een opdrachtgever aan de migratie van een hele afdeling naar een ander bedrijf. Met mijn team was ik indertijd verantwoordelijk om de mailboxen van deze mensen te migreren naar de nieuwe mailomgeving.

Vanaf de eerste dag dat wij aan de slag gingen hamerde ik er op dat wij de lijsten met data het liefst binnen een zo kort mogelijke termijn nodig hadden, liever vandaag nog dan morgen.

Hoe groot zijn de mailboxen? Welke mailboxen gaan mee, welke blijven achter? Wat zijn de oude en wat worden de nieuwe mailadressen?

Ondanks herhaaldelijke herinneringen, werden er pas een week voor de werkelijke migratie wat mensen wakker. Uiteraard was dit veel te laat en waren we genoodzaakt de migratie van de eerste groep met meer dan een week uit te stellen, met alle ellende van dien.

Voor mij was dit een belangrijke “lesson learned”.

Als het ook maar enigszins mogelijk is, wil ik niet meer afhankelijk zijn van andere partijen om bij migraties correcte data te verzamelen.

Data Collection – Van command-line tools tot PowerShell

Gelukkig werk ik nu vaak met PowerShell, een object georiënteerde shell- en scripttaal voor Microsoft Windows, waarmee je vrij eenvoudig verschillende soorten informatie kunt opvragen betreffende onder andere Exchange accounts van medewerkers.

Zo kun je gebruikersnamen, emailadressen, telefoonnummers, distributiegroep lidmaatschappen, etc. – snel en geautomatiseerd verzamelen en bundelen in een gewenste databestand.

Het mooie van PowerShell is dat je scripts eenvoudig kunt schrijven en inplannen. Daardoor kun je bijvoorbeeld elke nacht volautomatisch nieuwe databestanden laten genereren. Op deze manier blijft het projectteam van begin tot eind met up-to-date gegevens werken.

“Door het toepassen van de combinatie van Access en PowerShell hadden wij van meet af aan een heel duidelijk overzicht van de te migreren objecten (onze project masterdata). Daardoor konden we perfect batches definiëren, plannen en uitvoeren. Dagelijks konden we de gemaakte voortgang controleren. Als er issues waren, dan waren deze vanuit het overzicht gemakkelijk op te lossen en stelselmatig in de scripts te verbeteren. Samengevat van begin tot eind volledig in control.” -  Jan Jansen, Project Manager bij Sitech Services.

Access to the rescue

Data, of je het nu zelf genereert met PowerShell, of aangeleverd krijgt door bijvoorbeeld een HR- systeem, is vaak nog tamelijk ongestructureerd. Het bewerken van deze data gebeurt nog steeds vaak in een Excel-bestand, maar wat mij betreft kan dat handiger.

Mijn advies: gebruik Microsoft Access.

Databestanden die gegenereerd zijn door PowerShell kunnen gemakkelijk in Access worden geïmporteerd en vice versa. Access biedt vervolgens meer mogelijkheden dan Excel! Zo kun je door gebruik te maken van queries en koppelingen tussen tabellen gemakkelijk migratie batches en zelfs scripts samenstellen.

Handig wanneer je als bedrijf bijvoorbeeld medewerkers van een afdeling samen wilt laten migreren. Je kunt dan het “Department” veld gebruiken (wanneer dit gevuld is) om groeps-migratie batches te maken, maar je kunt ook kiezen voor andere criteria, bijvoorbeeld door handmatig een eigen migratiebatchnummer aan de data toe te voegen.

Data Quality

Naast het opstellen van batches, kun je met Access ook gemakkelijk je data quality verbeteren.

De export van data brengt zaken aan het licht die anders onopgemerkt zouden blijven tot het moment dat het in de weg gaat zitten.

Bij bepaalde migraties is het bijvoorbeeld van belang dat email adressen automatisch aangepast worden, zodat het “onmicrosoft.com” adres wordt toegevoegd.

Staat dit bij een mailbox uit, dan faalt de migratie totdat dit gecorrigeerd wordt.

Een voor een de mailboxen controleren of het vinkje hiervoor aanstaat, is ondoenlijk en onbetrouwbaar, dus in mijn scripts neem ik het standaard mee en kan ik eenvoudig zoeken naar mailboxen waar het niet aanstaat en deze (eventueel ook weer scriptmatig) corrigeren.

Minder afhankelijk – meer controle

Door gebruik te maken van PowerShell en Access is het gemakkelijker om in control te blijven. Dat alles zonder extra licentiekosten, maar gewoon met tools die vrijwel elke organisatie in huis heeft. Migraties worden daardoor beter voorspelbaar, problemen worden sneller opgelost en – niet onbelangrijk – gebruikers worden minder vaak lastig gevallen met verzoeken vanuit IT.

Want laten we eerlijk zijn: als werkgever wil je toch dat je medewerkers zo weinig mogelijk merken van een migratie.

De methodiek hebben we inmiddels bij verschillende klanten toegepast. Zo ook bij de migratie van Sitech Services naar Office 365.

Laat ik daarom eindigen met een quote van Frans Kluijtmans van Royal Mosa, die voor mij alles samenvat:

"Het gebruik van de database van Maurice heeft ervoor gezorgd dat we de migratie van onze gebruikers en gedeelde mailboxen op een simpele, vlotte en overzichtelijke manier hebben kunnen uitvoeren. Bij onduidelijkheden of problemen was het heel makkelijk om deze te vinden en dan ook heel snel op te lossen.
Samengevat: Het gebruik van deze werkwijze heeft ons heel veel werk en tijd bespaard”

Wil je meer weten? Kan ik je helpen? Laat het mij weten!

Meer weten over PowerShell en Access, neem hier contact met ons op.