The HAB is supported in Outlook clients and the down side is that there is no support Managing Hierarchical Address Book at Organization Level The script will create all groups, and will make sure that the members. What you really mean is can the script read Outlook's offline address book instead of AD. .. Sorry, that should be Outlook on a Windows 7 computer. I used the following vb script to add everybody I send an email to into my outlook address book at work. The reason for this is, that Oulook does.
|Language:||English, Spanish, Portuguese|
|ePub File Size:||26.51 MB|
|PDF File Size:||17.81 MB|
|Distribution:||Free* [*Register to download]|
currently we are looking for a possibility to change the address book . to Exchange have had the order changed to Outlook Contacts first. Does anyone know if there is a way via Group Policy, Registry File, or script to push out Outlook Address Book Settings? | 3 replies | Microsoft. In Outlook and beyond, Microsoft changed the way the address book is specified. The script would appear to work, but Outlook wouldn't.
In this article we will go over the entire process and see how we can use a simple script to speed up the process to create such design. Bear in mind that in order to deploy HAB it is not required to change all groups that you have, we can create a new structure just for HAB. We can create a set of groups to support the infrastructure required and assign the existent users to these new groups. Before starting this article make sure that you update your Office and Windows using Windows Update and apply all service packs available. Figure 02 After that we need to create the initial group that will be the root of our HAB, and usually you want to assign this group the name of your corporation. In this article we will be using AndersonPatricio.
In my testing, it broke Outlook and I'd need to reset my profile to resolve.. If you'd like to play around with it, I've been able to piece together that post with help of cached pages and people's reposting the content in other forums.
To configure the script you'd need to: Set your Outlook Address Book to the view you want to set on the remote workstation.
Export the registry key for this Outlook profile. VBS file see attached line to use your hex code. Make sure to leave in the double-quotes. GetStringValue - read a key in string format ' objReg. GetDWordValue - read a key in dword format ' objReg. ExpandableStringValue - read a key in expandable string format ' objReg.
EnumKey - read a key in an array format ' process array ex. Who is Participating? Solutions Learn More Through Courses.
Experts Exchange Solution brought to you by Enjoy your complimentary solution view. Get this solution by downloading an Individual license! Start your 7-day free trial. I wear a lot of hats LVL David Lee Commented: Hi, CaseForensics. Assuming that your your organization is using Active Directory, then yes, it is possible after a fashion. In wouldn't be "in the background" as in silently and automatically adding contacts as they're added to AD, but it could be a process that you schedule using Windows Task Scheduler.
ITPro44 Author Commented: Can you help me design a script to do this?
I can. Does the script need to just add contacts or does it need to update and delete them also? What details do you want to pull for each contact? Download eBook now!
It will need to update them for sure. As for deleting, this could be helpful, but it should be optional, meaning, the script should be able to run without deleting. Perhaps it would be easiest to design the update portion first. As you mentioned, running this as a scheduled task would be great. Will you design this so that it can be run without Outlook being open? Without the user seeing anything?
Yes, my solution will run without Outlook being open. The script will open Outlook in the background, but that will be transparent to the end-user. They won't see anything on the screen. As to updates and deletes, the simplest possible solution is to have the script tag the contacts it adds and delete them all at the beginning of each run. That saves having to write code to handle adds, updates, and deletes separately.
By deleting the contacts each time the script will treat them all as adds. Note that I'm only talking about deleting the contacts that the script has imported from Active Directory. It wouldn't delete any contacts that the end-user had entered manually. The alternative is to write code to handle adds, updates, and deletes individually. More code means there's more chance of something going wrong and it means each run will take longer. I don't know how many entries you have in Active Directory, so I can't forecast how much longer it will take.
Let me know how you'd like to proceed and we'll take it from there. I've already written the code, so once I know which approach you want to take I'll adjust it accordingly and then post it along with instructions. Great, I'm glad to hear it will run in the background. I understand what you are saying about how to design the script. I'm not comfortable, at this point, having it delete the contacts first, as users may add other information to these contacts that should not get deleted. Does this make sense?
Another way to put it is this.
Currently we use the following method to do this on an individual basis. Outlook then updates the existing contacts with new information only. Please see the attached pictures. This is the process I'm trying to replicate. Hopefully this explains what I'm trying to do better. I realize we may not be able to do everything the same way outlook is doing it. If that's the case, please tell me and we can adjust according to what is possible. Here it is.
The script reads all of the user entries in AD and copies the necessary information to an Excel spreadsheet. It then reads that spreadsheet and creates a contact for each person in it.
On subsequent runs the script will update a contact if it exists, create it if it doesn't. The script keys on the NickName property of a contact, so don't edit that field in the resulting Outlook contact or you'll end up with duplicates. The contacts will all be created in your Contacts folder. I don't know what AD account fields you have filled in, so I used the most common fields. I can adjust that for you if I left something out or included something you don't want.
I grouped the contacts together in a category I called "AutoUpdate". That way if something goes wrong, then you can find and delete all the contacts the script added by switching to category view and deleting all the members of that category. The script may take awhile to run, especially if you have a large number of accounts in AD.
There's no visual notification of when it's done. I tested the script in my AD environment and it worked perfectly.
Follow these instructions to use it. Open Notepad 2. Copy the code below and paste it into Notepad 3. Save the file. Name it anything you choose, just be sure the extension is. Double-click the saved file to give the script a test run 5. Create a scheduled task 6.
Worksheets 1 With excWks. Connection" adoCon. Command" adoCmd. Execute If Not adoRS.
Value excWks. Logon olkApp. GetDefaultFolder olFolderContacts. Count If excWks. Add olkCon. Quit Select all Open in new window.
Experts Exchange Solution brought to you by Your issues matter to us. Several things This is Awesome!! You're the man! I noticed the script doesn't sync all user accounts. How does it determine which accounts to sync? I need to find a way to filter out certain accounts. Would it be possible to have this script create a new contacts list list named "Company Contacts" and sync all the contacts to that list? This script is awesome!!
That should copy all user accounts while leaving out such things as contacts. A contact in AD is an entry that lists an address for someone outside of the company.
I further restricted the syncing to just those accounts that have both a first and last name, and an email address. That should filter out most service account entries. I can filter further if you want, I just need to know what you want to filter on.
I assume you mean a distribution list. Yes, that's possible so long as you don't have too many contacts coming from AD. There's a limit to the number of entries you can have in a distribution list. Thanks again. Glad you like it. I see. That's a good choice to filter by.
I need to think if I need it filtered by anything else. What I meant by this is not creating a distribution list, but creating a separate contact list. Please see the attached picture. I realize this may change things significantly, but is it possible for this script to use the Outlook GAL instead of AD to pull this info?
The problem is, we have some users who are remote and don't have a connection to AD. I assume the script would have to use the cache credentials for outlook in order to make a connection to the server. Is this possible? Would it be possible to just filter by security group called "Company Contacts"? I would place all users and or contacts into a security group that I want synced.
Hey BlueDevil, I haven't heard back from you in a while. Are you going to be able to make some of these additional changes? I sometimes get distracted and forget about a question. The script isn't creating a distribution list. What you really mean is can the script read Outlook's offline address book instead of AD.
The offline address book is an extract of AD that's copied to the local computer. When you pull up the GAL in Outlook you are looking at the offline address book. The answer is that I don't know of a way to do that, but I'll check into it. Yes, that's doable. It changes the way the script access the data though and may result in the script being much, much slower. Are you sure you want to go that route?
Here are my responses to those three items. Can you do this? Pulling the information from the offline address book would be ideal, as it will allow this solution to work for users who operate out of home offices and don't have a connection to AD.
The last item of filtering by security group will be unnecessary, since we are going to use the offline address book. Ok, I can modify the code to create the items in a different folder from the default contacts folder. I'm still checking into a way to read the offline address book.
No luck so far. That's if we can use the offline address book. I'm not convinced that's possible. DarrenEley Commented: This is excellent, I was asked yesterday to look at the same thing. Going to have a good read though the thread in the morning Perfect, Simply Perfect!!
I have a few questions If I delete a user from AD, and assign a mobile number to a new user, will this do it automatically? Are there any possible issues with it deleting any local contacts which the user has added manually, IE people not in AD and personal contacts type situation? Is there any things which I need to be careful with running this script? But Again Excellent!!
Regards Darren. Hi, Darren. CaseForensics didn't want the script to delete entries, so I didn't include that capability. I could add it though with just a few lines of code. Yes, the script would pick up a change to a user's mobile number the next time it ran. The script doesn't currently delete anything, so there's no chance of that happening. If a user manually created a contact and entered a nickname that matches that of a contact in AD, then the script could update the wrong contact.
So long as the users leave the nickname field alone, then there shouldn't be any problems. You should of course test it in your environment to make sure it works and that it's doing what you want and expect. The script depends on AD being accessible to work and does not include any tests to verify connectivity to AD.
If AD is not available e. Beyond that, I can't think of any issues that would be a problem. Thank you for such a detailed reply. I think will leave users to do a manual clean up as they do have to take ownership of something's: Is there a way that I could add a list of contacts not to sync?
Example we have Meeting rooms which are users which it imports? Something like a exception list I could add manually in to the script for user accounts not to sync. Last question, as I know I will be asked it by someone, the file as, can this be changed to First Name, Surname?
Again thank you in advance. Can you design the script to run this way? CaseForensics, I thought I'd already answered those three questions. Yes, I can modify the code to create the items in a different folder from the default contacts folder.
I noted that this was contingent on being able to read the OAB. I'll modify the original code and post an update as soon as I can next 24 hours or so. I wasn't aware that you were in ht middle of pursuing that.
Good Morning, Sorry to be a pain.