Category Archives: Exchange

Lync 2013 and Exchange 2013 Unified Messaging

In earlier blog posts I’ve written how to install Exchange 2013 and in another series of blog posts I’ve written how to install Lync Server 2013, including connectivity with a SIP trunk provider using a Lync 2013 mediation server.

The last and most exciting part (and least used I’m afraid) is to connect the two platforms into the Exchange 2013 Unified Messaging server role. If a call cannot be answered it’s rerouted into the Exchange server’s UM role where a voicemail can be recorded. This voicemail is then delivered into the user’s mailbox.

Continue reading Lync 2013 and Exchange 2013 Unified Messaging

Install Exchange 2007 SP3 on Windows 2008 R2

Now with Exchange server 2013 scenario testing on the way it’s time again to install Exchange Server 2007 in our lab again. Since Windows 2008 R2 is fully supported with Exchange Server 2007 SP3 this is my preferred server.

The easiest way to install the prerequisite server roles and features is to use PowerShell. The first server you’re going to install (and that is going to change Active Directory) needs the Remote Server Administration Tools (RSAT). RSAT also includes Active Directory Users and Computers, it can be useful to install it on other servers as well. Use the following command to install RSAT:

Import-Module ServerManager
Add-WindowsFeature RSAT-ADDS
Continue reading Install Exchange 2007 SP3 on Windows 2008 R2

Installing Exchange 2013 – Part I

Exchange server 2013 consists of two server roles, the Mailbox Server (sometimes referred to as the back-end) and the Client Access Server (sometimes referred to as the front-end). All clients connect to the CAS Server and the CAS Server proxies the request to the appropriate mailbox server.

It is possible to install the server roles on dedicated servers, multiple Exchange 2013 CAS servers with a hardware load balancer and multiple Exchange 2013 Mailbox servers with a Database Availability Group. This is the preferred way for large companies with lots of mailboxes, lots of servers and maybe multiple (global) datacenter. To be honest, this is where Exchange 2013 is designed for. But it is also possible for smaller organizations to install just two Exchange 2013 server with both roles on it, a DAG for mailbox resiliency and a hardware of software load balancers for the protocol resiliency.

Continue reading Installing Exchange 2013 – Part I

The bookmark is invalid

We still have an HMC 4.5 (Hosted Messaging and Collaboration) environment running. HMC has a different approach when it comes to Exchange 2007 compared to ‘native’ Exchange 2007. Everything you want to do has to go through the MPS (Microsoft Provisioning Server) which takes care of all Exchange related management jobs.

Recently a number of users called in complaining about Outlook not being able to create a new profile. The error message that was returned is “The bookmark is invalid”.

This issue is caused by the Outlook client not being able to connect to the Address List. This is more confusing since you can see the Address List information when logged on via OWA. But this is because OWA uses a different technique (in Exchange 2007!) for accessing address lists then the Outlook client.

When checking the appropriate mailbox info you get the following information:

[PS] C:\Windows\system32>get-mailbox info@contoso.com | select name,address* | fl
Name : info@contoso.com
AddressListMembership : {\Default Global Address List, \All Users}
[PS] C:\Windows\system32>

While a normal functioning mailbox would show:

[PS] C:\Windows\system32>get-mailbox jaap@hosting-consultants.nl | select name,address* | fl
Name : jaap@hosting-consultants.nl
AddressListMembership : {\hosting-consultants.nl AL, \hosting-consultants.nl GAL, \All Users, \Default Global Address List}
[PS] C:\Windows\system32>

Somehow the mailbox lost its Address List membership. This is caused by the fact that when manipulating a mailbox using normal cmdlets in Exchange 2007 some HMC specific settings are not set, including the AddressListMembership property.

This can happen with the following cmdlets, but maybe with more cmdlets though:

  • Update-AddressList
  • Update-GlobalAddressList
  • Move-Mailbox
  • Set-Contact
  • Set-Mailbox
  • Set-CASMailbox
  • Set-DistributionGroup

The following functions should NOT be used directly in the Exchange Management Shell, but should be performed via the MPS:

  • Enable-Mailbox
  • Disable-Mailbox
  • Enable-MailContact
  • Disable-MailContact
  • Enable-DistributionGroup
  • Disable-DistributionGroup
  • Move-OfflineAddressBook

I assume this was a known issue at Microsoft since there actually is a RepairExchangeObject procedure in the “Managed Email 2007” namespace.

Create an XML that contains the following (after editing for your own environment of course):

   
<request>  
<data>  
<!--The domain controller to use for Active Directory actions.-->
<preferredDomainController>AD01.Fabrikam.Com</preferredDomainController>
<!--Specifies the LDAP path of the user, group, or contact.-->
<path>LDAP://CN=info@contoso.com,OU=Contoso,OU=ConsolidatedMessenger,OU=Hosting,DC=Fabrikam,DC=Com</path> 
<!--Specifies the path of the hosted organization that contains the AL, GAL, and OAB as well-known-objects. By default it is the LDAP parent container of the object.-->  
<owningOrganization>LDAP://OU=Contoso,OU=ConsolidatedMessenger,OU=Hosting,DC=Fabrikam,DC=Com</owningOrganization>  
</data>  
<procedure>  
  <execute namespace="Managed Email 2007" procedure="RepairExchangeObject" impersonate="1">  
  <before source="data" sourcePath="preferredDomainController" destination="executeData" mode="move" />  
  <before source="data" sourcePath="path" destination="executeData" mode="move" /></p>  <p><before source="data" sourcePath="owningOrganization" destination="executeData" mode="move" />  
  <after source="executeData" destination="data" mode="merge" />  
</execute>  
</procedure>  
</request> 

Now run using provtest (provtest.exe fix.xml /x2) and check the Address List Membership again when done (maybe wait for replication to complete).

Special thanks to Kip Ng (ex MSFT) since I actually found the answer on his excellents blog: http://blogs.technet.com/b/provtest/archive/2009/05/26/addresslistmembership-goes-missing-again.aspx