Archive for May, 2010

Metaverse Router

Have you ever heard of Metaverse Router? If your answer is yes – you ARE a Sync Engine geek! (No offence here)
After years of sitting on this project I’ve finally got some time and will to clean it up, write an installer and make it publicly available.
So what is Metaverse Router?  If you have worked with MIIS/ILM and to some degree with FIM, before — you likely had a need to write some sort of provisioning code to generate new objects in connected directories. The truth is that regardless of how many directories you are generating objects for you’ll be working with the same DLL. It is a good and a bad thing. Good thing, it’s a single DLL, it’s easy to have all your code in one place and you can re-use some portions of it and apply to deferent situations.
The bad thing is that when you change something for one connected data-source you are changing code for ALL connected data-sources. Technically that qualifies your DLL to be re-tested from end-to-end and perform some regression testing on every data-source; will you do that or not is on your choice of how well you want to sleep that night and night after that.
So what is the solution? There is "well-unknown" router solution that MIIS/ILM product team supplied in the "developer reference"; technically you can cut and paste that solution and be happy with that.  What is gives you is an ability to create multiple provisioning DLLs for every connected data-source without having them all mixes into a monolithic block of code. The "developer reference" router will look at the files in the "extensions" folder and will look at their names. If file falls into specified naming convention — voila! — it will be executed.
The Metaverse Router that I’ve just published on CodePlex takes this idea to the next level. First of all I am looking at XML configuration file for my collection of provisioning DLLs. Second of all I don’t have to delete DLLs from "Extensions" folder to disable provisioning to a certain connected data-source (and therefore trigger a need for full re-synchronization), and third of all I can control execution index of my modules, which can be handy during specific configuration (Auxiliary MA implementation for example); Lastly, but not less important The Metaverse Router will allow you to turn on and off provisioning without actually changing sever configuration.
So if you are a Sync Engine geek – you’ve got a new toy for yourself:  Metaverse Router.
Happy Coding

Talking about Identity and work with pre-existing LiveIDs with log parsing

Thanks to Jonny’s world-wide popularity my humble blog was viewed more times than i ever remember after his link to the log parser script. Who knew that real people are actually reading these things! LOL


Thanks Jonny 🙂



Identity and work with pre-existing LiveIDs with log parsing

My exceptionally TALL friend from Schakra, Dmitry Kazantsev, has just blogged on a rather useful topic for Live@edu customers.  He addresses the scenario of identifying and importing pre-existing LiveIDs (EASI IDs) into a managed LiveID domain.

A helper script he has written parses the log produced by CSV_Parser.PS1 and retrieves all failed mailbox creation attempts.

Check out what Dmitry has done here:!2CED76B86679A4C9!748.entry.



Relieving the pain of EASI IDs

While deploying Outlook Live with power-shell CSV parser (CSV_Parser.ps1) at the customer site I’ve learned firsthand that dealing with EASI (Email As Sign In) IDs is a pain in a rear. To my knowledge there is no easy way to enumerate all pre-existing Live IDs that have been reserved by individual students before the university registered a domain for usage with Live@edu program; therefore during initial deployment administrators likely to see several "Alias already reserved as EASI ID" errors.
I would strongly recommend using -LogDirectory switch with your CSV_Parser.ps1, to capture all events, successful and otherwise, during your deployment. Generated log file is very useful for post-processing and analysis; You should also know that you’ll be seeing rather bulky log file containing more information that average administrator cares about. What administrators should really care about is to capture all IDs that have NOT been successfully provisioned, and retrieving that information form the log is rather tedious exercise for a human.
Ta-Da! Behold the ErrorParser.PS1 script that doesn’t mind digging through very large logs and picking all failed-to-provision-IDs!
Here is the URL for downloading:
Many thanks are going to the in-flight internet access and hellishly long flight-time from the East Coast to the West Cost of The United States of America. As a true-to-the-core-geek that is bored to tears during cost-to-coast flight, I’ve found pleasure in writing a PowerShell script (no comments please!  LOL) which is attached to this post. Feel free to download and use it for all your re-provisioning correction-measures needs.
You might also want to read following article about evicting or importing EASI IDs: