Microsoft Exchange and Blackberry Server Specialists


Microsoft Exchange Server and
Blackberry Enterprise Server news, views and fixes.

Self-Contained Exchange Server - Mixing Cloud and On Premise

Over five years ago I wrote about a self-contained environment I built for a small business where  they had no office of their own. A new client recently contacted me and asked if I had done anything similar recently, but using more up to date technologies. With the growth of cloud tech, Office365 etc, things have moved on.

This particular request was to provide Exchange for a project which was quite sensitive and the client didn't want to put the data in to Office365, but was quite happy to put it in to a private cloud using a dedicated server. It needed to be completely self-contained. No problem, as that is how I build my labs, so it was just scaled up. This is what I proposed and was deployed at the beginning of September.

Dedicated Server rented from a major host here in the UK (I can actually tell you where the server is located). Fairly standard specification, dual RAID 1 arrays, 32gb of RAM.

Installed on to the physical server was VMWARE 6.x.

VM Guests
Into that VMWARE server I installed the following guests

  • Pfsense. This provided the firewall for the entire environment, and once the builds were complete, the VMWARE admin console was put behind this as well.
  • Windows 2012 R2 DC (8gb RAM) Fairly obvious one - separating the Exchange server and the domain controller.
  • Windows 2012 R2 Exchange 2016 (16GB RAM) This was the main Exchange server.
    • Exchange 2016 Latest version of Exchange, naturally.
    • GFI Mail Essentials Providing malware, spam and attachment filtering, plus automatic signatures.
    • SSL Certificate - from
  • Observium monitoring appliance from Turnkey Linux (open source) This provides a good overview of the virtual machines. The host was also kind enough to setup a read only user on the IPMI interface of the server.
  • Windows 10 Pro workstation (4gb RAM) This had Office 2016 installed on it, along with some other tools to allow testing of the implementation from the server itself. It also provides a landing point should one of the end users need to access the server and doesn't have the tools available immediately.

The Windows servers also got the various monitoring tools I use with my Exchange clients. Backup to the cloud, using Exchange aware backup application was also provided.

Microsoft Office

Shortly after deployment, it became apparent that the clients were a complete mixture of Office versions, some of which didn't support the latest version of Exchange. Therefore I proposed, and was accepted, that we used Office365 Business subscription. This provided Microsoft Office for both the Windows machines used by the users, plus their tablets and phones. I integrated the domain I built with their new Office365 subscription providing a single username and password experience - the size of the deployment didn't justify a single sign on implementation. Should someone leave the project, we simply un-licence their Office installation.


All numbers correct at the time of writing (September 2016) and are excluding VAT.

  • Hosted Server: £140 a month
  • Per user licences: £25 a month (covers Exchange, Windows Server etc)
  • Office365: £7 a month per user
  • Server management Fee: £350/month
  • Setup: £1500 (includes hosting company setup charge and my time). SSL Certificate: £35/year.


The client has a solution that they can scale up and down as the project progresses, which fulfils their requirements of being a self-contained standalone solution, without the cost of the hardware and software up front. It is also managed for them by Sembee Ltd with responsive monitoring.

Removing a Database from Exchange 2010, 2013 and 2016

If you have attempted to remove a database on Exchange 2010 and higher, no doubt you will have seen this error message:


"This mailbox database contains one or more mailboxes, mailbox plans, archive mailboxes, public folder mailboxes or arbitration mailboxes, Audit mailboxes. To get a list of all mailboxes in this database, run the command Get-Mailbox -Database . To get a list of all mailbox plans in this database, run the command Get-MailboxPlan. To get a list of archive mailboxes in this database, run the command Get-Mailbox -Database -Archive. To get a list of all public folder mailboxes in this database, run the command Get-Mailbox -Database -PublicFolder. To get a list of all arbitration mailboxes in this database, run the command Get-Mailbox -Database -Arbitration. To get a list of all Audit mailboxes in this database, run the command Get-Mailbox -Database -AuditLog. To disable a non-arbitration mailbox so that you can delete the mailbox database, run the command Disable-Mailbox . To disable an archive mailbox so you can delete the mailbox database, run the command Disable-Mailbox -Archive. To disable a public folder mailbox so that you can delete the mailbox database, run the command Disable- Mailbox -PublicFolder. To disable a Audit mailbox so that you can delete the mailbox database, run the command Get-Mailbox -AuditLog | Disable-Mailbox. Arbitration mailboxes should be moved to another server; to do this, run the command New-MoveRequest . If this is the last server in the organization, run the command Disable-Mailbox -Arbitration -DisableLastArbitrationMailboxAllowed to disable the arbitration mailbox. Mailbox plans should be moved to another server; to do this, run the command Set-MailboxPlan -Database ."

This is probably one of the most useless errors in Exchange. It doesn't list all of the command required to check the database is empty, it also listed commands not available in the on premise version of Exchange.


The list of commands to check, is as follows:


get-mailbox -database "Databasename"

get-mailbox -database "Databasename" -archive

get-mailbox -database "Databasename" -arbitration

get-mailbox -database "Databasename" -publicfolder

get-mailbox -database "Databasename" -monitoring

get-mailbox -database "Databasename" -auditlog


Where "Databasename" is the name of the database you are trying to remove and not all commands work on all versions of Exchange.


If any of those come back with results, then you need to move the mailbox off:


Get-Mailbox -Database "Mailbox Database 1" -AuditLog | new-moverequest –targetdatabase "Mailbox Database 2"


After allowing the domain to replicate, you should then be able to drop the database.

Approving Quarantined ActiveSync Devices with Exchange Management Shell

For some reason, the act of approving a quarantined device using EMS isn't immediately obvious. It took me a little while to work out how to do it. 

This command will show you what devices are quaranted:

Get-ActiveSyncDevice -filter {deviceaccessstate -eq 'quarantined'} | select identity, deviceid | fl

Therefore it would seem that set-activesyncdevice would be the correct command to use to approve the device. 

Not so. 

It is actually set-casmailbox. 

Take the device ID from the first command, you use it to complete this second command: 

Set-CASMailbox –Identity –ActiveSyncAllowedDeviceIDs DEVICEID

Give it about 15 minutes and the device will start to get email. 

Kemp Release Free Load Balancer Virtual Appliance

Kemp have released a free load balancing virtual appliance. If you have a small environment and don't need the high availability of two load balancers, then this could be an ideal solution. 

There are some limitations, particularly around the throughput (only 20mps) but if you are using a small environment or a lab, then it could be all that you need. Absolutely no reason to use Windows Network Load Balancing any more. 

If you have Kemp load balancers in your production environment, then it is an ideal way to have the same in your test environment. It will also make this a valuable learning tool for Exchange and server administrators. 

No support included, but that is to be expected. 

It looks like it is pretty much the complete feature-set from Kemp, including:

Layer 4/7 load balancing
Content switching
Caching, compression engine
MS Exchange 2010/2013 optimized
Pre-configured virtual service templates

The only thing it is missing features wise is Active/Hot Standby redundant operation.

If you are going to use this in a production site, then I would watch that maximum throughput though.