Hi Guys,
I'm writing an ECMA 2.2 extension for FIM, which provisions users into Lync from AD. I have a question around handling delta imports.
Firstly, to handle delta imports, I get all the Lync objects which have changed since the last import step (which is passed as customData to the import function). To do that, I use the WhenChanged property returned by get-csuser, and I run this code
ps.Commands.AddCommand("Get-csaduser"); ps.Commands.AddCommand("where-object"); string filtercommand = string.Format("$_.Enabled -eq $True -and $_.SipAddress -ne $Null -and $_.WhenChanged -gt \"{0}\"", importRunStep.CustomData);
effectively, this is running the following PS command:
Get-csaduser | where "{$_.Enabled -eq $True -and $_.SipAddress -ne $Null -and $_.WhenChanged -gt <last import date>}"
Now, the trouble is that Lync uses AD to get the date and time for the last object change, which means that if I change an object in AD and do a delta import in the Lync MA, I still get imported objects into the Lync connector space. What I want is to have a distinction between the two, so that if a user in AD is changed and a delta import performed on the Lync MA, it doesn't sync those changed objects in the Lync CS.
One way I thought of doing that perhaps is to get all the changed objects as above, but then iterate through the existing CS Entry objects in the Lync MA and do a comparison to see what has changed, but as far as I know there is now way to get hold of the current objects in the connector space.
Is there any logic which could help me perform the above, i.e. separate Lync and AD completely but still be able to do a delta import on Lync MA?
Thanks in advance