Kay Sellenrode's Blog

  Home  |   Contact  |   Syndication    |   Login
  56 Posts | 0 Stories | 39 Comments | 4 Trackbacks



Tag Cloud


Post Categories

Image Galleries



Teched 2007

Sunday, April 28, 2013 #

Last week I was setting up Lync 2013 with Remote Call Control to a Mitel Live Business Gateway(LBG).
I expected not much had changed from Lync 2010, and the lack for any 2013 procedures took us the 2010 path.

After configuring the Lync environment to talk against the Mitel LBG, surprised I was to see no traffic at all was arriving at the LBG.
Going over the configuration several times and trying a few other things, I finally opened snooper to see what was happening.
The logs showed two interesting pieces of information that caught my attention:


X.X.X.X is not a local IP

After trying my search karma I quickly found that I wasn't the only one facing this issue, but there wasn't any solution to the issue published online.
So digging further I reached the blogpost of Terence Luk which set me in the right direction, after configuring the identity on the staticroute RCC started working

So the solution to make RCC from Lync 2013 to a Mitel LBG work was to create the static route as following from the Lync command shell.

New-CsStaticRoutingConfiguration -Identity service:Registrar:lyncpool.domain.local

$TLSRoute = New-CsStaticRoute -TLSRoute -Destination lbg01.domain.local -Port 5061 -UseDefaultCertificate $true -MatchUri *.lbg01.domain.local

Set-CsStaticRoutingConfiguration -Identity service:Registrar:lyncpool.domain.local -Route @{Add=$TLSRoute}


Watch my blog for a complete configuration guide of the Mitel LBG together with Lync 2013 RCC


Friday, February 22, 2013 #

I think many of you have strugled or are now struggling on how to get the Offline Address Book distributed to all CAS servers.
When you try to add a new server to the OAB and you already have a large number of servers in the list of virtual directories it can be quite a pain from the Exchange management console.

It also cost me quite some time to come up with a decent script that was capable of retrieving all the virtual directories and add them to the OAB.
And if you have multiple different Offline Address lists the script might still be useful, see below.

But today I found out that if you want your OAB to be distributed to every CAS server hosting an OAB virtual directory, a new parameter will simplify your life.
This parameter was introduced with Exchange 2010 and automatically will distribute the OAB to each server.

The parameter I'm talking about is GlobalWebDistributionEnabled.

The syntax is simple using the following cmdlet.
Set-OfflineAddressBook –Identity OABname –GlobalWebDistributionEnabled $True

Now when you open the OAB from the Exchange Management Console you will notice that "Web-Based" is listed as a distribution method but not when you open the distribution tab of the property screen.

When you want to add a virtual directory manually you will be prompted with an error stating that you can't due to the globalwebdistribution setting.

The nice part of this setting is, you can now set and forget about updating the virtual directories list.


Here is the script I previously used to update the virtual directories, use it at your own risk.

#add all virtual directories to the offline address book.

$oabservers= get-exchangeserver | where {$_.serverrole -like "*clientaccess*"}



foreach($oabserver in $oabservers){

    $oabvalue=$oabserver.name + $oabdefault

    $oaburls = $oaburls + $oabvalue


set-offlineaddressbook -identity OABName -VirtualDirectories $oaburls

Friday, April 13, 2012 #

I think that almost every Exchange admin can concur with me that the Outlook autocomplete cache is one of those things you love but at the same time also hate.

Users mostly love this function, except when it fails.
Luckily since Outlook 2010 things got a little better and we got rid of the dreaded nk2 files.
Outlook 2010 now includes a folder named "Suggested Contacts", all users you send an email to and that don't already have an contact object are saved in this suggested contacts folder.
A lot of people thought this folder is also the source for the autocomplete cache, which would make it somewhat easy to manage, I wish the solution was that easy.
Badly enough separate from the suggested contacts, outlook still maintains a cache for the autocomplete function.

Let us say you run in to the following situation:

John works for company A and is a popular contact for almost everyone in your organization.
Now John quit his job at Company A and moved to Company B.
Luckily John maintains your company as customer, but his email address is now changed from companyA.com to companyB.com
Since you don't want to do any business with Company A anymore, you want to make sure none of your users accidentally mail to his old address.
Now this is where the real fun starts, cause almost all of your 1000 users have mailed at least once with John.
Resulting in the fact that every user has John most probably listed in their autocomplete cache.


I have run into sort like situations multiple times with several customers, which is always a pain.
And of course this blog post is the result of one of those issues once again.
I knew that with the Suggested contacts we could do more than previously, but still never spent time on it before.
But today I thought lets nail this now and forever!!


Ok let's start of that things are different for every combination of outlook and exchange.
I explain the procedure for Exchange 2010 SP1+ in combination with Outlook 2010.

At first we want to get rid of all contact objects that contain john@companya.com
To do this we need to be assigned to the RBAC role "Mailbox Import Export", which can be done through the Exchange Control panel.
In my test environment I assigned this role to the Organization admins, but in real life you might want to add it to a custom role.

Open the Exchange control panel by logging in to the ecp url, in my case https://ITFEX.itf.local/ECP, and make sure you selected your organization as management scope.
Browse to Roles & Auditing, and open the properties for the organization management role group.
click on the Add button to add a new role to the Organization Management role group, select the Mailbox Import Export role and click on add and OK to add it to the role.


Once you have assigned that role to your account you can open the Exchange Management Shell and execute the following command:

Get-mailbox –resultsize unlimited | search-mailbox –targetmailbox "your.account" –targetfolder searchanddelete –loglevel full –logonly –searchquery "kind:contact AND john@companya.com"

This command will create a list with all mailboxes and any contacts that were found with an email address that contains john@companya.com, this list is then posted in the mailbox you specified at your.account in the folder searchanddelete.
Now examine the report that was created and posted in the mailbox to see if it matches what you think it should match.
My results looked like this:


When you're confident that the search includes all references and no false positives you can execute almost the same command, but this time with an delete action instead of the logonly.

Get-mailbox –resultsize unlimited | search-mailbox –targetmailbox "your.account" –targetfolder searchanddelete –loglevel full –DeleteContent –searchquery "kind:contact AND john@companya.com"

Now most people would think this would remove the contact object from the suggested contacts, resulting in a removal from the autocomplete list.
Sad but not true, to clean up the autocomplete list start Outlook with the command: "outlook /cleanautocompletecache"

This will result in an empty cache, but luckily this is rebuild based on the suggested contacts, which now doesn't include the john@companya.com contact anymore.



Friday, March 23, 2012 #

When Installing Exchange from the command line in a locked down environment I was presented with the following error message on the CAS prerequisites check.

You must be a member of the 'Organization Management' role group or 'Enterprise Admins' group to continue.

When I checked the Organization Management members list, I didn't see my account there but when opening one of the groups that were member I was listed.

One of my first thoughts was, to check if I needed to be a member of the exact group and not a subgroup.
and of course this was the case, so if you run into this issue you need to get yourself added to the Organization Management group directly.

For some organizations this might cause some trouble since they have strict procedures around adding accounts to groups like Organization Management. But at least now you have some proof that hopefully helps

Friday, March 2, 2012 #

A large portion of my work consists of designing Exchange 2010 environments for customers all around the world.
Recently I was working on an assignment where we wanted to implement Exchange UM to replace cisco unity for 23 offices. The whole deployment is planned to run virtualized, this directed me to the specific requirements of UM on virtualization.

This project made it once again clear to me that some good research is valuable even when you think you know your stuff.

What I already knew was that Exchange UM was only supported to be virtualized when it was running on its own, as well as that it required 4 processor cores (with no oversubscription).The requirement that I wasn't 100% sure about, was the memory.
So while doing research on this, I found some contradictory information on this.

If you read the Best Practices for virtualizing Exchange 2010 whitepaper
You will notice that the requirement besides 4 Processor cores would be to allocate 16 GB of RAM.

Though when you follow the guidance from the Exchange help at

You will notice the requirements state the following text:
All Exchange 2010 server roles, including Unified Messaging, are supported in a virtual machine. Unified Messaging virtual machines have the following special requirements:

  • Four virtual processors are required for the virtual machine. Memory should be sized using standard best practices guidance.


Looking at the standard best practices guidance it will tell you the minimum requirements is 2GB per processor core, doing the calculation for you it makes 8GB as a minimum requirement instead of 16GB.

So I sent out a mail to check what the official support standpoint was, the result is now that the best practices whitepaper has been updated to reflect the guidance from the Exchange help.

So the final requirements for running Exchange 2010 UM on a supported virtualization platform is 4 processor cores (with no oversubscription) and 8 GB of memory.

In my design this saved the customer 184 GB of memory, worth spending some time on.

Friday, December 16, 2011 #

Today at one of my customers I ran into a strange issue after they changed their network subnet from 24 to 23 bits.

When troubleshooting this issue we found out that mostly the first ping from a xp/2003 system to the 2008 systems got a reply and afterwards some did some didn't. Especially hosts in the extended part of the subnet were unable to reply.

looking at the arp table on both sides showed us something strange on the 2008 systems.

the 2008 servers showed us a arp table like below: 00-21-55-f8-db-e4 dynamic 00-21-55-f8-db-e4 dynamic 00-19-bb-d6-b1-18 dynamic 64-31-50-1d-2a-a5 dynamic 00-21-55-f8-db-e4 dynamic 00-21-55-f8-db-e4 dynamic 5c-26-0a-02-42-81 dynamic 00-21-55-f8-db-e4 dynamic 00-1f-29-83-51-2d dynamic

When searching for the manufacturer of this mac address we found cisco as the source.

So to pin down the issue, the customer luckily had only 1 cisco device, we checked the device and found out it was the source of that mac address.

specific to this device was that it was not managed by the customer, but by a telecom provider. so this device wasn't updated with the new subnetmask.

so it looks like the arp request from 2008 is formulated differently than the xp/2003 arp request. which causes the Cisco device to reply with it's own mac as it is a router device that only knows about the first part of the subnet and not about the new one.

the solution was to disconnect the cisco until the provider has changed the subnet mask.

to make everything work quickly we cleared the arp table at all servers using arp -d.

Hope I can help anyone running into this issue with this post.

Sunday, January 16, 2011 #

My experience with the cloud and why work will change and not disappear.
Until now I have multiple experiences with the cloud, for the most good.
i have worked on multiple cloud solutions in the past but let me describe them as 0.x versions.
For me the 1st real serious cloud experience was a bit more than 1 year ago, when our company switched from an in house server to Microsoft BPOS as a complete replacement.
Since we are a small consultancy firm and don’t have that much else to do than consulting, our IT requirements are quite simple. We need Mail and Storage space for our documents.
With the in house server we had multiple outages during a year, mostly by lack of administering.
Being consultants in the field and hardly having time to maintain a server, BPOS was and still is for us the right solution. Since the migration we have less outages and a much more robust solution.
Have we run into issues with BPOS for our own environment? No not that I’m aware of.

Based on this experience I made a stance about deploy ability of BPOS and cloud solutions, they are suitable for MKB (Dutch for Medium and Small Businesses).
Most Small businesses don’t have the amount of work to hire a full time it admin. Hiring a service provider to maintain their own server might be even more costly than hiring an admin.
So seeing the capabilities of BPOS and the needs of most businesses I see it as a great solution that gives the business a complete Server replacement solution for a fixed price per user. resulting in a clear budget for IT spending, something most small businesses were looking for, for a long time.
So right now I’m deploying BPOS with a customer, and I run into some of the Cloud 1.0 issues.
In my opinion BPOS is a good working Cloud version 1.0 solution.
What do I mean with 1.0? Well 1.0 is mostly a tested solution (unlike 0.x versions) but still have quite some limitations caused by too few market experience.
in my opnion this is also the reason why we don’t see that much BPOS customers yet and why I think Office 365 will make a huge difference. What I have seen of 365 shows me it is a Cloud 2.0 version, meaning it has all needed features and is much more flexible to the customer.
This is also why I see changes happen in my work field, changes and not unemployment due to Cloud solutions.
Cloud 1.0 solutions gave me the idea that if every customer would adopt them I would be out of work. But in reality Cloud 1.0 solutions are here just to set the market needs. The Cloud 2.0 and higher versions will give the customer much more flexibility, but also require the need for a consultant.
Where the 1.0 versions are simple to setup and maintain, the 2.0 solution needs more thought upfront and afterwards.
BPOS in its 1.0 version brings you a very simplified Exchange 2007 solution, Suitable for some customers. Looking at Office 365 you receive almost a full blown Exchange 2010 solution.
I expect this to be even more customizable in the next version.
In my search for the changes to my work I try to regulary write a post with my thought around the Cloud and the impact on my work as a consultant.
I'm also planning to present around this topic, so if anyone is interested to see me present around this topic, you're more than welcome to contact me.