Tag Archives: Exchange 2007

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

msExchQueryBaseDN and Exchange 2010

In the old days when using Exchange 2007 for hosting scenarios you would use the Configuring virtual organizations and address list segregation in Exchange 2007 whitepaper. In Exchange 2007 the msExchQueryBaseDN property on a mailbox was used to limit the search scope of users in OWA. The typical setting of this property is the OU where the users would reside in Active Directory.

The msExchUseOAB property on a mailbox is used to select an Offline Address Book in a hosting environment (where multiple OAB exist of course). This way the user would receive the OAB of his particular organization.

Continue reading msExchQueryBaseDN and Exchange 2010

New-ReceiveConnector fails

When creating a new Receive Connector on Exchange Server 2007 SP3 (Update Rollup 2) the creation failed with a non-retriabele error and a “the requested attribute does not exist” error:

Active Directory operation failed on DC02.labs.local. This error is not retriable. Additional information: The parameter is incorrect.
Active directory response: 00000057: LdapErr: DSID-0C090C3E, comment: Error in attribute conversion operation, data 0, v1db1
The requested attribute does not exist.
Exchange Management Shell command attempted:
new-ReceiveConnector -Name ‘Relay X2007SP3’ -Usage ‘Custom’ -Bindings ‘10.0.0.217:25’ -RemoteIPRanges ‘10.0.0.213-255.255.255.255’ -Server ‘X2007SP3’

According to this article on the Microsoft Exchange Team site more people are facing this issue (scroll through the comments). It looks like something specific to UR1 and UR2 for Exchange Server 2007 SP3: http://msexchangeteam.com/archive/2010/09/09/456198.aspx

Microsoft is aware of this issue and it is currently being investigated. It looks like the schema upgrade during SP3 is not performed properly sometimes, resulting in an incorrect schema for Service Pack 3. Unfortunately the setup application of SP3 continues, resulting in these kind of errors.

That being said, you can solve it by running the Exchange 2007 SP3 schema upgrade again:

Setup.com /PrepareSchema

After this creation of a new Receive Connector is successful.

When this issue is fully investigated by Microsoft and a solution is available an official Microsoft knowledgebase article will be available as well.

The name on the security certificate is invalid or does not match the name of the site

So you installed Exchange 2007 (or Exchange 2010), you have your Outlook 2007/2010 clients, Unified Communciations certificate, configured the Exchange Webservices, Autodiscover, really anything:

Set-OWAVirtualDirectory –Identity X2007SRV\OWA (default web site) -ExternalURL https://webmail.inframan.nl/OWA -InternalURL https://webmail.inframan.nl/OWA
Set-OABVirtualDirectory –Identity X2007SRV\OAB (default web site) -ExternalURL https://webmail.inframan.nl/OAB -InternalURL https://webmail.inframan.nl/OAB
Set-WebServicesVirtualDirectory –Identity X2007SRV\EWS (default web site) -ExternalURL https://webmail.inframan.nl/ews/exchange.asmx -InternalURL https://webmail.inframan.nl/ews/exchange.asmx
Set-ActiveSyncVirtualDirectory –Identity X2007SRV\Microsoft-Server-ActiveSync (default web site) -ExternalURL https://webmail.inframan.nl/Microsoft-Server-ActiveSync -InternalURL https://webmail.inframan.nl/Microsoft-Server-ActiveSync
Set-ECPVirtualDirectory –Identity 2010CAS\ECP (default web ) -ExternalURL https://webmail.inframan.nl/ECP -InternalURL https://webmail.inframan.nl/ECP

But still users get this annoying certificate warning while on the internal network :“The name on the security certificate is invalid or does not match the name of the site

image

Troubleshooting with Outlook (right mouse click on the Outlook icon in the task bar) but all information that Outlook reveales look good:

image

Using the Remote Connectivity Analyzer (www.testexchangeconnectivity.com) doesn’t show any errors whatsoever. The error message comes from IIS, do the next step is to check the IIS Log File:

image

When using the Get-AutodiscoverVirtualDirectory cmdlet you can check the –InternalURL and –ExternalURL properties, and these turn out to be empty, so we have to set these properties:

Get-AutodiscoverVirtualDirectory | Set-Autodiscover –InternalURL https://webmail.inframan.nl/autodiscover/autodiscover.xml -ExternalURL https://webmail.inframan.nl/autodiscover/autodiscover.xml

doesn’t give the results we want. Even worse, the –InternalURL and –ExternalURL aren’t used at all in the Client Access Server (although they are enforced by the Schema). The Client Access Server object has a property called –AutodiscoverServiceInternalUri, and this property needs the complete URL to the autodiscover XML file:

Set-ClientAccessServer –Identity X2007SRV –AutodiscoverServiceInternalUri https://autodiscover.inframan.nl/autodiscover/autodiscover.xml

Now the error message “The name on the security certificate is invalid or does not match the name of the site” won’t show up anymore on the Outlook clients.