In a Microsoft Exchange Server 2007 environment, you run scripts that make multiple changes on an address list and update the address list. You run each script with 5 minutes interval. In this scenario, certain changes may not be updated. Therefore, you may obtain an incorrect address list.
This issue occurs because the Microsoft Exchange System Attendant service checks the uSNChanged and the whenChanged attributes of the address list object when it tries to update the address list into the memory. Changes are only updated if the time is newer than the old time. If multiple changes are made in the same second, and the first change is read into the memory, other changes will not be read into memory until the Microsoft Exchange System Attendant service is restarted.
To resolve this issue, install the following update rollup:
2608656 Description of Update Rollup 6 for Exchange Server 2007 Service Pack 3
To work around this issue, add sleep between each changes of address list in the script.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
For more information about the uSNChanged attribute, visit the following Microsoft website: