Office 365 “Wave 15” Certifications – Part 1: 70-346

Since July 2013 I’ve been getting more and more engaged in the Cloud and Microsoft’s vision of it though Office 365 deployments. And I’ve learned a lot along the way, even had to deal with some Wave 15 growing pains of performing implementations during this period of transition.
So back in December I had the opportunity to obtain vouchers from Microsoft for the next generation of Office 365 certifications:

70-346 – Managing Office 365 Identities and Requirements
70-347 – Enabling Office 365 Services

During the beta period both exist under their respective 71-346 and 71-347 designations, and today I took 70-346 so I sat down Continue reading “Office 365 “Wave 15” Certifications – Part 1: 70-346” »

Exchange Move requests and “Fatal error MapiExceptionShutoffQuotaExceeded has occurred”

I’ve been doing some archive database moves for a client and started running into an issue where a few of the moves would fail, while a majority of the rest would run OK.

Looking at the log files, the error “Fatal error
MapiExceptionShutoffQuotaExceeded has occurred” appeared:

Continue reading “Exchange Move requests and “Fatal error MapiExceptionShutoffQuotaExceeded has occurred”” »

It’s Official!

After spending most of the Memorial Day weekend studying, I knocked out my 70-417 (Upgrading MCSA to 2013) and my 70-342 (Advanced Solutions on Exchange 2013), getting over a 900 on both, and earning the MCSE: Messaging!

With half of my Unified Communications goals met, next up I’ll be focusing on Office 365 certification along with the MCSE: Communication (which focuses on Lync).

IIS alone as a TMG replacement for Reverse Proxy?

After an arduous few weeks building my Lync 2013 lab, I finished a typical deployment plan of getting the internal workings complete (load balancing using the Citrix Netscaler Standard free licenses, redoing certificates after signing up with StartSSL on their Class 2 validation level) then moving on to the external access. I built an Edge server and am using that for external access plus federation with Google Talk but now it was time for the dredded reverse proxy.

It’s been some time since I’ve updated my topology so I wanted to take this opportunity to share what my lab environment looks like:


Besides my onsite OWA & Sharepoint being web-facing, the web-facing components for Lync 2013 are hosting in a remote datacenter, simply due to the fact that I am limited on inbound SSL and IP addresses from my provider. A VPN tunnel provided connectivity to the internet-facing side of Lync. Even the SIP trunks provided by Asterisk are hosted here.

Onsite however, you can see that a Citrix Netscaler (Hyper-V VM) is providing load balancing for my front end pool. The Persistent Chat pool, along with the Edge Server pool, are both single member nodes and DNS is setup in such a way to resolve to these machines VS a load balancer. Im sure those will come in time! Continue reading “IIS alone as a TMG replacement for Reverse Proxy?” »

Connecting Lync 2013 through XMPP Federation to Google Talk

One of the best improvements in my mind for Lync 2013 is the integration of the XMPP gateway into the product. If your organization does a lot of business with smaller organizations that use Google Talk, Jabber, etc, this is one of the biggest reasons why you’ll want an on-premise deployment, as Office 365 does not support XMPP federation.

Lync 2010 had you deploy the OCS 2007 XMPP gateway, and unfortunately with it’s limitation you only only federate one SIP domain per connector. So if you were a large organization with 10 SIP domains who all needed to talk to, say, Google Talk, you needed 10 different installations of this gateway.

To federate you need external access, so you need an Edge server. To PIC (public internet connectivity) federate, you also need a publically-trusted certificate on your Edge External connection. But there is a silver lining: if you only desire to federate with Google Talk, you can use a certificate from an internal CA. If you deploy your Edge using a single IP, you can use a single URL and a single SSL certificate (in environments with a single SIP domain).

To deploy the XMPP services, first we need to modify the topology.

Continue reading “Connecting Lync 2013 through XMPP Federation to Google Talk” »

Dynamic Distribution Groups based on user’s home database

With some recent Exchange database consolidation at a client, one of the requirements came up from the CIO to have a way for the company’s communications department to notify people effected by a certain database issue (outage, heavy IO, whatever). We’ll, they have both primary and archive databases, which could be activated on different servers. There were upwards of 100 databases company wide, and so the initial thought was that this is going to be a manual effort to create distribution lists, manage user membership, and hope they never changed database. That wasn’t going to happen. Continue reading “Dynamic Distribution Groups based on user’s home database” »

Excluding Domain Controllers in Exchange 2010

Update 5/31/2013: DO NOT PUT YOUR LIST IN QUOTES! Putting the list of domain controllers within quotes causes Exchange to view that item as a single name, versus parsing out at the commas. I’ve updated the Powershell commands below to show it without the quotes.

I’m back and in action working as an Exchange SME from being involved in an SCCM project for a few months, and one of the issues I ran into at a client is that they needed to roll out a few new domain controllers in their empty root domain as well as their child domain. Unfortunately there were some deployment issues that caused the OAB generation to fail when it his these problematic DCs.

While we didnt want to use the StaticDomainControllers and StaticGlobalCatalogs switch for the Set-ExchangeServer command, in this case until we get the problematic DCs fixed, we decided to use the StaticExcludedDomainControllers switch. We could optionally set each one individually:

Set-ExchangeServer -Identity MP1EXCCAS501 -StaticExcludedDomainControllers MP1INFADS012.child.corp,MP1INFADS003.parent.corp,MP1INFADS002.parent.corp

Or pipe the list of servers into the command to set them  all at once:

Get-ExchangeServer | Set-ExchangeServer -StaticExcludedDomainControllers MP1INFADS012.child.corp,MP1INFADS003.parent.corp,MP1INFADS002.parent.corp

Once this was set, we ran into the age old issue that it wasn’t being reflected through the Get-ExchangeServer command. I don’t know WHY Microsoft did it this way, but you have to use the -STATUS switch to see the results reflected properly. I always prefer the format table command and list out each of the DC settings to ensure things took properly.

get-exchangeserver -status | ft name,staticexcludeddomaincontrollers,staticdomaincontrollers,staticglobalcatalogs

Based on AD replication, you may need to give it some time (up to 60 minutes) to bake in, but you can always open the Event Log on your server and in the Application event log look for MSExchange ADAccess 2080 Topology. It should not show those excluded domain controllers:

Log Name:      Application
Source:        MSExchange ADAccess
Date:          3/19/2013 12:36:30 PM
Event ID:      2080
Task Category: Topology
Level:         Information
Keywords:      Classic
User:          N/A
Computer:      mp1excmbx504.child.corp
Process MSEXCHANGEADTOPOLOGYSERVICE.EXE (PID=1740). Exchange Active Directory Provider has discovered the following servers with the following characteristics:
(Server name | Roles | Enabled | Reachability | Synchronized | GC capable | PDC | SACL right | Critical Data | Netlogon | OS Version)
MP1INFADS001.parent.corp CDG 1 7 7 1 0 1 1 7 1
MP1INFADS011.child.corp CDG 1 7 7 1 0 1 1 7 1
MP1INFADS501.parent.corp CDG 1 7 7 1 0 1 1 7 1
mp1infads511.child.corp CDG 1 7 7 1 0 1 1 7 1
MP1INFADS012.child.corp CDG 1 7 7 1 0 1 1 7 1
MP1INFADS002.parent.corp CDG 1 7 7 1 0 1 1 7 1
MP1INFADS003.parent.corp CDG 1 7 7 1 0 1 1 7 1
mp1infdns501.child.corp CDG 1 7 7 1 0 1 1 7 1
mp1infdns502.child.corp CDG 1 7 7 1 0 1 1 7 1


Integrating Exchange 2013 + Lync 2013 for UCS & OWA integration

Update 7/13/2015 – Two and half years after the original post and finally some updates! I have had a chance to fully patch my environment to the latest updates for Exchange and Lync 2013. With some troubleshooting I have it working, and you’ll find updates scattered throughout this article.

I had previously written an article on how to integrate Exchange/Lync 2010 for IM capability via OWA, and now that Exchange/Lync 2013 have been released, Microsoft has maintained the compatibility but thankfully with an easier-to-achieve process.

Because of the Unified Communications Managed API (UCMA) 4.0 requirement on Exchange 2013 for the integrated UM role, both platforms have a similar set of prerequisite requirement. That was half the battle in 2010, because if you didn’t have the correct version of the patches, or didn’t install them in the right order, things would fail.

Along with OWA integration, Lync now supports a Unified Contact Store (UCS), which was somewhat hinted to in 2010 but didn’t come to fruition until 2013. This means that you don’t have to maintain a separate set of contact from Exchange, which was somewhat frustrating and cumbersome. This will be any admin’s friend in pushing out set groups of contacts 🙂
Continue reading “Integrating Exchange 2013 + Lync 2013 for UCS & OWA integration” »

Exchange 2013 Liftoff! Part 1 – Installation

Just this past week, Exchange 2013 has been RTM’d (Released to Manufacturing)! We’re still a few months away before the general public can start their installs, possibly longer for migrations since we’re waiting for the release of SP3 for Exchange 2007/2010 specifically for Exchange 2013 migration – but more on that later.

For now, it’s time to take a look under the hood to see how Microsoft has revamped the setup process. Plus, we’re going to dig into some troubleshooting.

We’re diving straight into a build on Windows Server 2012 Standard

Continue reading “Exchange 2013 Liftoff! Part 1 – Installation” »

Exchange 2013 Liftoff! Part 1.5, Installation Troubleshooting

Updated 4/9/2014 with additional information to hopefully help you :mrgreen:

Now Microsoft has made the Exchange 2013 setup is pretty easy, but what happens when you run into problems? There are a myriad of different ways an install can go upside down, and I’m going to try to touch on as many as I’ve seen here. I guarantee it won’t cover them all but I’m more than willing to jump in and take a look with you – just leave me a blog post to take it from there.

Installation Media issues

I’m going to start here and reiterate that the consistency of your installation media is PARAMOUNT. I’m not sure why I’ve seen so many install issues with Exchange 2013 because of a bad ISO or install EXE. I can’t say if it’s due to issues during the download, from the Microsoft end, or at the client end – take your pick, I’ve seen them all. I’ve even tried to copy the SP1 EXE package from a network share to my Exchange server and end up with the File is Corrupt message.

You could get as far as one of the 15 steps for install and then magically have Exchange install bomb. The bad thing about this is if it happens during a step, and you try to rerun setup using this same media, it could make things worse to where you would need to perform something like the Uninstall & Cleanup process.

My recommendation would be 2 fold:

  • For an ISO, copy the files off the disk to a local folder on the Exchange server itself. If you seen Incorrect Function using the GUI, or like in the case below using ROBOCOPY, cut your losses and download a new copy. Don’t keep retrying the install

  • For the self-extracting package, download right from the Microsoft site (or use a USB drive if you’re not virtual, but who isn’t these days) on the Exchange server itself, then expand to a folder on the same machine. Don’t try to expand to a network path!!!!

Rerunning Installation

If you rerun setup from media, its smart enough to detect know and try a repair

In this scenario, using Programs and Feature to try and perform a change to fix what is broken.

Continue reading “Exchange 2013 Liftoff! Part 1.5, Installation Troubleshooting” »