Microsoft Outlook – Connect to more than one Exchange server

Update: Support for Outlook 2003 has been added to ExtraOutlook.

Update: In case the main ExtraOutlook website is down, I uploaded a copy of the program onto this website. A copy of ExtraOutlook 1.2 is available here: ExtraOutlook 1.2

Normally you can only connect to one Exchange server at a time with Outlook. But a recently released 3rd party application name ExtraOutlook will allow you to open more than one instance of Outlook with each instance connected to a different Exchange server. Currently this 3rd party application only works with Outlook 2007 but an Outlook 2003 version is being worked on by the developers. You can download the application from the Hammer of God Website.

Here is a copy of the description for ExtraOutlook (as stated on the Hammer of God website):

As long as Outlook has been around, people have been trying to get two instances running at the same time. Not multiple profiles that you can load when starting Outlook, but two separate instances running concurrently, each with their own associated profile. After all, Outlook (even 2007) only lets you connect to a single Exchange server per profile… And that sucks.
What would be great is to have one instance connected up to your “business” Exchange Server, and another connected up to your “personal” Exchange Server (and of course, to other people’s Exchange servers who don’t you know have an account on their box ;).
If you’ve tried to do this, you’ve found that no matter what you do, you can’t run two (or more) Outlooks at the same time, even if you try renaming .exe’s, using command-line profile specifications, or any other tricks.
However, while futzing around one day trying to get two Outlooks running, I had what I thought was a great idea — I’d configure a separate profile for Outlook under a different user account, and then use “RunAs” to launch Outlook as that user, and all of my dreams would come true. Boy, was I excited.
Well, it didn’t work. In fact, it didn’t work so well that it scared me.
When Outlook was launched via “RunAs” (no matter whether I executed Outlook.exe in a secondary “RunAs” command prompt or directly from the the interactive session), what happened was that a separate instance of Outlook did indeed launch, but it displayed the “concurrent” user’s folders and NOT those of the user used to RunAs – no matter how you launched it! If during this time you viewed Task Manager, you would find that even though you saw two differnt windows running, and though you could interact with them individually (meaning, you could open different sets of folders in each separately, but they were for the same user) you only saw one instance of the .exe running. The first thing I thought was “Voodoo!!” I then said to myself, “Self, even though you launched it in a completely different user context, it hopped out of that user’s space and hijacked your concurrent logon’s files! WTF?”
During last year’s Microsoft Ninjitsu training at Black Hat Vegas, I brought it up to my class and we all concurred that voodoo was afoot – even some Microsoft guys (who shall remain nameless) thought so and told me to STFU and to contact MSRC before talking about it anymore since it looked like Outlook was actually crossing user context borders.
True to “responsible disclosure,” I called upon the skillz of Jason Geffner, a “reverse engineer” I work with at NGSSoftware. Jason is one of those irritatingly smart people that can do anything, so I knew he’d help me out (Actually, we’ve got lots of people like that at NGS ;). As it turns out, Outlook is doing nothing close to what I feared. Basically, the second instance sees that another Outlook window is running in the same interactive logon space, and when it starts, it just calls another popup in the previous Outlook space and then terminates itself (that’s close enough, anyway). The good news is that there is no “user hopping” or “boundary crossing” here. A more detailed explanation of the actual technical process is available on Jason’s site. The really good news is that Jason was able to intercept the exit process and patch the FindWindowA call to a NULL value, which started a completely separate Outlook instance and allowed a different profile to be selected on load! W00t! So, without further adieu, we are proud to present you with our “ExtraOutlook” tool that allows you to launch as many Outlook instances as you want. All you have to do is configure the profiles you want, and then type: ExtraOutlook.exe “C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE” (after you download it, of course).
Attendees of past Microsoft Ninjitsu classes have been using it for some time now (as all attendees get special access to the Hammer of God Member’s Site) and we’ve not heard of any catastrophic failures (you know, like having all mailbox data destroyed without any hope of recovery).
Of course, use it at your own risk, and all standard warnings and disclaimers apply. Go nuts.

3 thoughts on “Microsoft Outlook – Connect to more than one Exchange server”

  1. Greetings:

    Extra Outlook 1.2 has been posted to the HoG site — 1.2
    (thanks to Jason Geffner) now supports Outlook 2003 and 2007 on both XP and Vista.

    Thanks!

  2. I am trying to get to the hammerofgod website to pick up the ExtraOutlook application. Despite many attempts I cannot get to it.
    Is it still active ? Is there another location where I can get extraOutlook

  3. @Luc Van Overveldt – The HammerOfGod website worked for me when I just tried it a few minutes ago. Try it again. In case it is still not working for you, I updated the article with a link to a copy of the program that I put on this website.

Leave a Reply