Creëer automatisch AD Gebruikersaccounts met RES Automation Manager

Deze blog toont enkele nieuwe functies van RES Automation Manager 2011 SR1. Zoals velen waarschijnlijk weten, is het mogelijk om Active Directory Gebruikersaccounts aan te maken met RES AM. Wat echter nog niet kon, is een uitzondering te maken op het moment dat het te creëren account al bestaat. Dit is echter wel handig als je een grote hoeveelheid accounts probeert aan te maken, waarbij gegevens via een CSV bestand worden ingelezen.

In de meeste omgevingen worden gebruikersaccounts aangemaakt via bepaalde regels. Bijvoorbeeld [achternaam][eerste letter van de voornaam][oplopend nummer in geval dat accountnaam al bestaat]. Dit is nu ook mogelijk in RES AM. Met de nieuwe opties om parameters te veranderen als resultaat van een conditie en condities die een taak afhankelijk maken van het resultaat van de taak ervoor.

Deze blog toont screenshots met grote hoeveelheden parameters erin. Deze zijn te herkennen aan het formaat $[parameternaam]. Het is noodzakelijk om kennis te hebben hoe deze parameters worden aangemaakt en ingezet, wil je datgene in deze blog tot een goed einde brengen. Tevens moet voor de uitvoer van deze blog een Active Directory Connector aanwezig zijn binnen de RES AM omgeving.

Als eerste maken we een nieuwe module aan. Geef het een goede omschrijvende naam, zoals ‘Create a domain user’. Voeg de taak ‘Create Active Directory User’ toe. Hiervoor kan gebruik worden gemaakt van de mogelijkheden zoals omschreven in een blog van Anne Plancius “How to get rid of those spaces in Windows User Accounts“. Na doorlopen van die stappen zou de taak er ongeveer als volgt uit moeten zien:

Nadat een gebruiker op deze manier is aangemaakt, wil je waarschijnlijk enkele andere gegevens aanvullen, zoals homedrive, profielpad, telefoonnummer, enzovoort. Dit kun je doen door een 2de taak aan te maken in de module. Kies de taak ‘Manage Active Directory User’ en gebruik in de settings-tab the parameters die je ook in de 1ste taak hebt gebruikt (dit scheelt dus type werk). Op de 2de tab (User Properties) kun je de gegevens kwijt. De eerder gecreëerde parameter voor logonname kun je gebruiken voor het invoeren van de homedrive- en profielpad. Op het einde zou de taak er ongeveer zo uit moeten zien:

Als deze twee taken zijn aangemaakt, zou je ongeveer de onderstaande module parameters moeten hebben. Een aantal ervan kun je al voor de module invoeren, zodat de waarden van je omgeving er standaard al in staan. De UserLogonName is een uitdaging, maar wordt uitgelegd in de eerder genoemde blog van Anne Plancius. De lege parameters worden gevraagd in te voeren bij het laten uitvoeren van de taak.

Nu heb je een module dat automatisch een gebruikersaccount aanmaakt in de Active Directory en welke je kunt gebruiken via een CSV bestand. De lege parameters kunnen immers via een CSV ingelezen worden, waarna RES AM automatisch per regel in de CSV de gemaakte taken gaat uitvoeren. Dit gaat goed, totdat je dezelfde namen aan treft. Zo gauw in het CSV bestand zowel de namen Katrien Duck, Kwik Duck en Kwek Duck voorkomen, zal de taak falen met de mededeling dat het aan te maken object al bestaat. Katrien en Kwik Duck krijgen immers beiden de inlognaam DuckK. Laten we de aangemaakt taken eens veranderen, zodat dit wel goed gaat komen.

Als eerste maken we een nieuwe parameter aan voor de teller die achter de gebruikersaccounts moet komen op het moment dat zo’n inlognaam al bestaat. Voor het gemak noemen we de parameter ‘Counter’ en geven we deze standaard geen waarde. Zorg ervoor dat je in het tabblad Ínput’ de vinkjes weghaalt bij ‘input new value’. Vink wel het hokje aan bij ‘Hide parameter when not directly used’. De nieuwe parameter zou er dan zo uit moeten zien:

Nu moeten we de parameter van UserLogonName nog aanpassen. Open deze en plaats de nieuwe parameter ‘Counter’ op het einde van de value. Als de parameter ‘Counter’ leeg is (default waarde) wordt de logonnaam nog steeds [achternaam][1ste letter van de voornaam]. Echter, Als de parameter ‘Counter’ een waarde heeft, zoals bijvoorbeeld de waarde 11, dan wordt de logonnaam DuckK11.

De eerste stappen voor het afhandelen van een bestaand gebruikersaccount zijn nu gezet. Enige wat we nog moeten doen is de counter van een waarde voorzien, indien dat nodig is. Als eerste moeten we de taak ‘Create AD User’ door laten gaan bij problemen. Dit kun je doen door deze te editen en te kiezen voor het tabblad ‘Properties’. Geef daar bij ‘Error control’ de optie ‘Continue job on error’ aan.

Open vervolgens de 2de taak ‘Manage AD User’ en kies voor het tabblad ‘Condition’. Op deze tab gaan we een van de nieuwe condities gebruiken van RES AM 2011 SR1. Kies ‘Add’ en selecteer ‘Status of the previously executed task’ en geef deze de waarde ‘= Completed’.

Nu moeten we RES AM laten weten wat hij moet doen op het moment dat deze conditie wordt gehaald en wat hij moet doen als de conditie niet gehaald wordt en de task dus ‘failed’ is. Kies onder ‘If condition is TRUE’ voor de optie ‘Execute this task, but skip all remaining task in this module’. Onder ‘If Condition is FALSE’ kies je voor de optie ‘Skip this task’ en selecteer je de checkbox bij ‘Set parameter’. Kies vervolgens de parameter ‘Counter’ en geef deze de waarde ‘1’. Het totaal ziet er vervolgens als volgt uit:

Wat houdt bovenstaande nou allemaal in. Op het moment dat RES AM probeert een gebruikersnaam aan te maken die al bestaat, zal de taak ‘Create AD User’ falen. Omdat we hebben aangegeven dat RES AM door moet gaan op het moment dat die taak faalt, start gewoon de volgende taak ‘Manage AD User’. Hierbij wordt eerst de conditie bekeken om te bepalen wat er met de taak moet gebeuren. Als het gelukt was het useraccount aan te maken, wordt deze taak gewoon uitgevoerd. Na uitvoeren van de taak, worden de rest van de taken in de module overgeslagen. Het account is immers klaar.

Echter, wanneer de gebruikersnaam niet aangemaakt kon worden. Wordt de module ‘Manage AD User’ overgeslagen en wordt de parameter ‘Counter’ een waarde toegekend van 1. Hiermee wordt op dat moment ook de aan te maken gebruikersnaam veranderd, omdat deze afhankelijk is van de waarde in parameter ‘Counter’

Echter, hier hebben we niets aan als de module verder niet nogmaals probeert dezelfde stappen uit te voeren. RES AM kent geen ‘loop’ mogelijkheid, dus moeten we die zelf min of meer creëren door de al gemaakte taken te kopiëren. Dit kun je doen door in de taaklijst van de module beide taken te selecteren en vervolgens via de rechtermuisknop te kiezen voor Copy of door ctrl+C te gebruiken. Past vervolgens dezelfde taken in dit scherm. Doe dit een aantal keren voor het geval er redelijk wat gebruikers zijn met dezelfde achternaam en voorletter. Het resultaat ziet er dan als volgt uit:

We hebben nu een grote module met een grote hoeveelheid taken erin. Echter, de ‘counter’ komt nooit hoger dan 1. Open de 2de taak ‘Manage AD user’, ga naar het tabblad ‘Condition’ en geef de ‘counter’ de waarde ‘2’. Doe dit ook voor de 3de keer dat ‘Manage AD user’ voor komt en verander daar de waarde ‘3’, enzovoort (tot de allerlaatste, daar haal je de conditie weg).

Open daarna de laatste ‘Create AD user’-taak en zet ‘Error control’ bij deze taak terug op ‘Stop job on error’. RES AM zal dan de module als failed beschouwen als ook in onze laatste ‘loop’ het account niet aangemaakt kan worden. Nu zullen de neefjes Kwik, Kwek en Kwak Duck de gebruikersaccounts DuckK1, DuckK2 en DuckK3 krijgen, op het moment dat Katrien Duck (DuckK) al in het AD aanwezig is. Zogauw Kwik Duck wordt aangemaakt zal de module eindigen met de status ‘Completed with errors. Dit komt omdat de 1ste keer dat het account wordt aangemaakt, die taak faalt. Als je zo’n job opent ziet het er ongeveer als volgt uit:

Zoals je kunt zien is de eerste keer dat het account wordt aangemaakt, een error opgetreden. De ‘Manage AD User’-taak wordt vervolgens overgeslagen en de counter wordt verhoogd naar 1. De tweede keer dat het account wordt aangemaakt gaat het nu wel goed, dus wordt ook het managen van het account gedaan om vervolgens de overige taken in de module over te slaan.

Een buildingblock van dit alles is binnenkort te downloaden bij RESguru.com. Deze blog zal dan worden aangepast met een link daar naar toe.