Wednesday, March 5, 2008

Why Exchange 2007 Ticks Me Off

Last weekend, I was tasked with installing a brand new Exchange 2007 server. For those of you not already familiar with it, Microsoft Exchange Server is what's frequently known as a "groupware" application, meaning it provides e-mail, shared calendars, shared contacts, and all that good stuff. The nice thing about Exchange is that, historically, it includes everything, up to and including the kitchen sink. You want e-mail? It can do that. You want the ability to sync somebody's mobile device with the exact same contacts, tasks, appointments, and e-mail that they have back in the office? No problem - it does that. You want shared calendars? Done. Do you need a web access page so that people without e-mail clients can still access important work information? Sure - it'll do that. There are some warts with Exchange, just like any other Microsoft product. For starters, Exchange is another one of those products that continues the grand Microsoft tradition of "throw everything in a big, monolithic database file that's unnecessarily difficult to back up or restore". It's resource hungry, to put it gently - it's not uncommon for it to use a full gigabyte of RAM or more for, say, 20 mailboxes or so. It doesn't play well with others; the Outlook Web Access page looks nicest and is fully featured in Internet Explorer on Windows, for example. But, it does work, especially for smallish companies that want a little "big company" functionality. It's not perfect, but, like Windows and Microsoft Office, it's what people know, and that's frequently good enough.

Exchange 2007 still does all of this, but, like Windows Vista, there are a few differences compared to previous versions. The interface looks different. There are more features. Things are laid out differently. That's fine and good - change happens. I'm okay with that. However, if you're going to make changes, at least try to be consistent. For example:

1. In old versions of Exchange, if you needed to change permissions on a mailbox (i.e. say the administrator needs access to somebody else's mailbox), it was fairly intuitive. You changed permissions on the mailbox the same way you changed permissions in the file system - you right-click the mailbox, go to "Security", and make your permissions change. In Exchange 2007, that no longer exists - to change permissions, you have to use the new PowerShell.

2. In old versions of Exchange, there was a program called Exmerge that let you import and export mailboxes and PSTs (Microsoft Outlook data files). You could take somebody's PST and import it into an Exchange mailbox and vice-versa. In Exchange 2007 SP1, you can still do that, but there are a couple of changes. First, the Exmerge tool, which was graphical in nature, is no longer supported. Instead, you're supposed to use the import-mailbox and export-mailbox tools in the PowerShell. Secondly, the import-mailbox tool doesn't work on the mail server (64-bit by requirement) - it instead tells you to use the tool from a 32-bit machine with the Exchange tools installed. Those tools are 650 MB in size. They also don't include the import-mailbox tool. Because of this, there's no clean or easy way to import data from Outlook into the server other than having everybody launch Outlook and manually import their data file into the Exchange server (imagine doing this for 50 people to see why this is bad).

There are two common threads to these complaints - PowerShell. Don't get me wrong - I have no problem with PowerShell. I think it's an incredibly useful and powerful tool, and I'm happy that Microsoft is getting serious about providing a useful command line tool for the Windows environment. However, I'm a little less excited about Microsoft arbitrarily deciding that the only way to administer one of their most popular products is through the PowerShell. The great thing about Windows is that every single part of the operating system can be administered from the graphical user interface. It may not be the ideal place to administer it, mind you, especially for more repetitious activities, but, for one-off tasks, it's wonderful. The GUI can communicate insanely difficult concepts quickly and relatively efficiently, giving you all the information you need to conceptualize the task at hand. Command lines rarely give you that ability - you have to know what you're doing beforehand.

Consider the following task:

Let's say you need to check file permissions on something. Which would you rather do? Use this:



Or this:



Now imagine having to manage your file system with only the latter method. Now, to add insult to injury, imagine only being able to administer your complex mail server with just the latter tool.

Right.

This is why I'm not a fan of Exchange 2007, and why it took me 13 hours to set up that mail server last Saturday. Ugh.

0 comments: