A while back, I worked at a large company that maintained the company phone directory via Active Directory. My personal PDA couldn't sync with AD, so I never had the phone numbers I needed. I eventually wrote this script to dig through AD and pull out the names, phone numbers, locations, managers, etc. from AD. I wrote it so it would either update Outlook or dump the data to a tab-delimited ASCII file.
The program as written may not totally suit your needs depending on how your IT folks have AD populated. There may be certain fields that your company uses that ours didn't use, and vice versa. I dug through MSDN until I found all the fields we had populated that provided the info I wanted. You may have to find and use other fields. YMMV.
The program retrieves AD records for AD ObjectCategory = Person and ObjectClass = User. In our case we had some OrganizationalUnits (OUs) that I didn't need and some EmployeeTypes (ETs) that I didn't want, either. You may specify OUs and ETs in the .ini file to be ignored when retrieving data. Another way I minimized the records I wanted was to suppress any record that didn't have a manager. A sample .ini file is attached as a .txt file.
When adding the records to Outlook, I set a specific category name so that all these records may be separated from other groups. This program does NOT perform an update - it deletes all the records in the specified category and reloads them from AD. I felt it was too time-consuming to try to determine which fields within a record had changed.
For trial purposes, I'd suggest dumping to an ASCII text file until you get the records you want.
Cheers,
Avian MyCoDirectory.au3 MyCoDirectory.txt