My environment requires me to be able to create Exchange mailboxes on existing users, disable those mailboxes and then, some time later, re-enable them and have Exchange reconnect them automatically all driven from some Metaverse attributes.
I have code in MapAttributesForExport which performs this "provisioning" and "deprovisioning" of mailboxes which is working fine. Basically this:
If mventry("mailenabled") Then
If Not csentry("homeMDB").isPresent
csentry("homeMDB") = inventHomeMDB()
End if
Else
csentry("homeMDB").delete
End If
inventHomeMDB() takes a list of databases and assigns one at random. Then equivalents for msExchHomeServerName and mailNickname.
When it then comes to reprovisioning, I need to be able to recall what homeMDB was set to when the deprovision occurred (as it may have been changed in Exchange by a Move-Mailbox).
I have tried flowing homeMDB back into the MV with a catch in a rules extension to not flow an empty value but this doesn't work because the code is never run when the attribute is Deleted.
I have thought about keeping a small SQL table with the "last known values" in (kept up to date in an IAF rule) which could be checked before calling inventHomeMDB() but this seems rather inelegant.
Any ideas?
Thanks!