Like many people I expect, I approached my first Extensible MA (XMA) with some caution. (On my Advanced MIIS course the other participants didn’t even want to cover the section on Extensible MAs, preferring to see a demo of the, as yet unreleased, password portal.) But once I got one going I was completely taken with the possibilities of XMAs. Basically, if you can script it, you can make an XMA to do it!
An XMA uses MVExtension and MAExtension code, just like any other MA, but additionally you have the CSExtension, where you write your own Import and Export methods. Here you can cater to any weird and wonderful variations not supported by the standard MAs.
The first point to note is that the XMA can only import from a text file, so the Import section of your CSExtension code will be about generating a list of objects and attributes from your Connected Data Source (CDS), and sticking it in the Import file.
The Export section is where you get to have some real fun, writing routines that will effect change in the CDS. You can call scripts, run database commands, execute commands on remotes servers, whatever you need to do.
Some of the XMAs I have created do the following:
- Run dsacls commands to set permissions in AD;
- Create home directories on Netware servers, and then zip them up and archive them when no longer needed;
- Create, archive and delete personal websites on Apache/Linux.
The possibilities really are endless!