Getting members into groups seems to be an early hurdle for many people. Microsoft provide the Group Populator – an obtusely round-about method involving SQL tables, Select queries, input text files and code that must be run outside of MIIS. Once I got the hang of the multivalue aspect of the SQL MA, I couldn’t figure out why anyone would use Group Populator at all!
One thing I will concede about Multivalue SQL MAs is they can be monstrously slow for large data sets. Perhaps Group Populator is quicker? Even if it is though, I find the Multivalue method so simple and flexible. Group Populator restricts you to creating groups with rules (like everyone with an office address that contains “Building A” goes into the “Building A” group). A multivalue table gives you complete freedom over who goes into what group, and it can be used for other multivalue attributes as well!
So enough waffle – lets get down to how it works.
A Multivalue SQL MA needs two tables:
- Table One lists all the objects with the minimum information required to join them to their metaverse counterpart. Probably all you will need here is an object type and an identifying attribute.
- Table Two links the objects to values, with multiple values possible for one object. It must include an Attribute Name column – but you can include different Attributes in the one table.
Take an AD/Exchange example – configuring Distribution Groups. Not only must these groups have members, but they are also restricted on who can email them. The attributes are member for the membership list and (somewhat obscurely) dlMemSubmitPerms for the restricted list.
My first table I will call ADMV_Objects. It lists all the possible Groups and Users that may be involved.
My second table I will call ADMV_Values. It must include the ObjectIDs exactly as they are in the first table, matched to attribute values.
It is now just a matter of configuring my SQL MA.
On the Connect to Database page I put the Objects table in as the primary table, and the Values table in as the Multivalue table.
Then on the Configure Columns page I click the Multi-value button to open the Multi-value settings page. Here I get to tell MIIS:
- where to look for the the attribute names;
- where to look for the values – unhelpfully referred to as “String attribute column”, but values is what they mean; and
- which multivalue attributes to expect.
Finally set your Join rules so MIIS knows where to flow the attributes and you’re away!