Executive Summary: Microsoft Exchange Server 2007 made many changes from the previous version. Many of those changes are welcome, but some induce headaches. Exchange 2007's reliance on Windows PowerShell commands is positive in many ways, but it limits the capabilities of the GUI. Certificates and web access are complex, and Exchange 2007 lacks a native backup solution. |
Microsoft Exchange Server has gotten stronger in
recent years, gaining both a solid reputation for
stability and the lead in market share. With the
release of Exchange 2007, Microsoft made massive
changes to the product, and frankly, many
of them were excellent. However, a few changes
weren’t quite so good. In this article, I’ll take a look at a few of the
most common annoyances with Exchange 2007 and, where possible,
offer some solutions to the problems.
GUI Limitations
One of the key changes Microsoft made in Exchange 2007 was to
build the entire product management toolset around Windows
PowerShell. In itself, this is a good thing, but administrators used to
using a GUI for some tasks can no longer do so. Examples of problem
areas include setting public folder permissions, manipulating
diagnostic logging levels, getting mailbox statistics, and exporting
mailboxes. Here are suggestions to help you around a couple of
these problems.
Getting mailbox statistics. In Exchange 2003, it’s easy to see the
size and number of items in mailboxes, and even sort the view. In
Exchange 2007, you must use the Get-MailboxStatistics command
through Exchange Management Shell (EMS), as shown here:
Get-MailboxStatistics | where
{($_.objectclass -eq "mailbox")} |
sort-object TotalItemSize |
format-table DisplayName,
@{expression= {$_.TotalItemSize.Value.ToMB()};
label=”MBSize(MB)”},
LastLogonTime, DatabaseName,
ItemCount
This command gets mailbox statistics for all mailboxes (not including
system mailboxes and other special mailboxes) and outputs the
results in a table. Figure 1 shows the output, and you can see that
I’ve labeled the TotalItemSize column as MBSize(MB) and that its
values are in megabytes. The output is sorted by the TotalItemSize
column.
For help with using PowerShell to manage Exchange, or for
general information about PowerShell,
see the learning path for
this article.
For more information about the
Get-MailboxStatistics command, see the Microsoft article "Get-
MailboxStatistics," at technet.microsoft.com/en-us/library/bb124612(EXCHG.80).aspx.
Exporting a mailbox to a
PST. In Exchange 2003, we have
the ExMerge utility, a GUI tool,
to export part or all of a mailbox
to a PST. However, ExMerge
isn’t included with Exchange
2003; you have to download and
install it separately. In Exchange
2007, the process for exporting
to .pst files has improved
because the ability is built into
the product. However, it would
be nice if you could simply right-click a mailbox in the Exchange
Management Console to export it. Instead, you must use EMS.
First, ensure your account (in my example, Admin) is a Microsoft
Exchange administrator and local administrator on the source
server. Your account must also have full access rights for the mailbox
from which you will export (in this case, Nathan). You can grant
these rights with the following command:
Add-MailboxPermission -Identity Nathan
-User Admin -AccessRights FullAccess
To perform the export, you must be on a computer running the
32-bit administrative tools and with Microsoft Office Outlook 2003
SP2 or Outlook 2007 installed. I usually use a Windows XP workstation.
As long as you meet the above prerequisites, you can run the
export using the following command:
Export-Mailbox
-Identity nathan@gaots.co.uk
-PSTFolderPath C:\PSTFiles\nathan.pst
(For detailed directions for exporting mailboxes, see the Microsoft
article “How to Export Mailbox Data,” at technet.microsoft.com/en-us/library/bb266964.aspx.)
Certificates and Web Access
Certificates are one of the most common
areas where people have problems in
Exchange 2007. By default, Exchange 2007
is secured with a self-signed certificate.
Although this method is secure, it often
leads to users being prompted that the certificate
isn’t trusted. Administrators usually
prefer to access webmail through something
such as owa.example.com. Therefore, it’s
essential to request, create, and assign a new
certificate. This certificate needs to secure
access to Exchange when Exchange is referenced
by a variety of names. You create such
access by adding Subject Alternative Names
(SANs) to the certificate. The SANs need to
cover all names used to access Exchange,
including the host name, the internal Fully
Qualified Domain Name (FQDN), the external
FQDN for Microsoft Outlook Web Access
(OWA) and Outlook Anywhere, and the
external Autodiscover FQDN.
Continued on page 2
So, what do you need to do? Assume
you have a single Exchange 2007 server
called exchserver1 running the Mailbox,
Hub Transport, and Client Access roles and
you want to access the server using OWA
internally via the URL https://owa.example.local and externally via the URL https://owa.example.com.
First, you need the relevant DNS A records
in your internal and external DNS zones so
that the URLs resolve to the IP address of
the server. For external access, make sure
incoming traffic traverses any firewalls over
port 443. When DNS resolution is working,
you create a certificate request by running the
following PowerShell command in EMS:
New-ExchangeCertificate
-GenerateRequest:$True
-SubjectName "c=US, o=company,
cn=owa.example.com"
-DomainName owa.example.com,
autodiscover.example.com,
exchserver1, example.local,
example.com,
exchserver1.example.local
-FriendlyName ExchOWACert
-PrivateKeyExportable:$True
-Path C:\ExchOWACert.req
This command creates a request file, which
you then send to your certificate authority
(CA), be it an internal or public one. It’s
important that the SubjectName parameter
is correct and represents your company. Otherwise, it’s unlikely a public CA such
as VeriSign will be able to authorize your
request.
After your CA authorizes your server, it
sends you a .cer file. You must import that
file to the server using the command
Import-ExchangeCertificate
-Path C:\ExchOWACert.cer
The output of this command shows that the
certificate has been imported and lists the
certificate’s thumbprint. Copy the thumbprint
to the clipboard; you’ll need it to
enable the certificate. To enable the certificate,
use the following command, where thumb is the copied thumbprint:
Enable-ExchangeCertificate
-Thumbprint thumb
-Services "IIS,POP,IMAP,SMTP"
You’re almost done. All that remains is to
set the URLs required to access Exchange.
But first, I should introduce a couple of
parameters. The InternalURL and ExternalURL
parameters can be specified on
web-accessible virtual directories such as
OWA, Offline Address Book, Autodiscover,
Exchange ActiveSync, Unified Messaging,
and Exchange Web Services. Each of these
virtual directories has a URLs property
page that lets you configure its internal
and external URLs. The InternalURL and
ExternalURL parameters let you specify different
URLs for access to the Client Access
server. The InternalURL parameter is set
by default on installation and is what the
default self-signed certificate uses for its
principal name. When a Client Access server
is externally accessible, the ExternalURL
parameter should be configured with the
URL used to access the service, such as owa.example.com/owa.
Setting these parameters in larger
Exchange deployments can be complex, but
in this scenario, things are fairly simple. Use
this command to set up the virtual directory
for OWA:
Set-OWAVirtualDirectory
-Identity "OWA (Default Web Site)"
-InternalURL https://owa.example
.local/owa
-ExternalUrl https://owa
.example.com/owa
The command is the same for other virtual
directories, but substitute the corresponding EMS cmdlet (i.e., Set-OABVirtualDirectory,
Set-UMVirtualDirectory, Set-WebServices-
VirtualDirectory) and identity parameter.
Having completed these steps, you
should now have secure access to OWA
both internally and externally from the URLs
specified. You should also have a solid base
to begin the process of enabling Outlook
Anywhere with Autodiscover because the
certificate and InternalURL/ExternalURL
configurations are already in place.
Lack of Native Backup in
Server 2008
My final annoyance is the lack of a built-in
backup utility for Exchange 2007 running
on Windows Server 2008. Exchange needs
an Exchange-aware backup program. Ever
since the first version of Exchange (4.0)
shipped, the Exchange installation has
modified NTBackup to provide just such a
program. However, with the move to Volume
Shadow Copy Service (VSS)-based backups
on Server 2008—and consequently, the
removal of NTBackup—Exchange no longer
has a usable backup utility. The only options
left are to purchase Microsoft System Center
Data Protection Manager or third-party
backup software. Unfortunately, right now
there’s nothing else that can be done, but in
June 2008 a member of the Exchange Server
product team announced that Microsoft
plans to release a VSS-based plug-in for
Windows Server Backup. The plug-in will let
customers take Exchange-aware VSS backups
on Server 2008. At press time, however,
no updates have been released about the
plug-in.
As someone who has worked with
Exchange 2007 for a while now, I often have
clients moan to me about the bits they don’t
like. I hope this article gives you ideas about
how to work around some of the challenging
areas of Exchange—and I hope Microsoft will
improve some of these problem areas in the
next version of Exchange.
I would still love to see an Exchange 2007 aware backup for the servers.
Surely the VSS backup should be here by now, as Win 2008 SBS has got it built in!
Hi wosully and borki;
I agree that it would be a useful addition. Although SBS 2008 has one built in, I understand there is actually a fair amount of work to do to port that into Windows Server and ensure that it functions flawlessly.
My feeling right now is that System Center Data Protection Manager is an extremely capable product which is well worth investigating.
Cheers
Nathan
In Windows 2008 we have no Exchange NTBACKUP (allegedly a dispute between Symantec and MS).
I'm really scared about having to rely on a separate server (DRM or Backup Exec or whatever) to backup and clear logs in a crisis.
What Exchange admin does not run NTbackup immediately as soon as they are called to any difficult situation?
Tapes are cheap for long term storage of Exchange data – I really have a problem with the paradigm "backup the whole server to removable disks or USB keys". Not everyone has multiple sites. Multiple sites can be in multiple legal jurisdictions, not good for replication of sensitive data. Tapes survive dropping, and can easily be stuck in pockets and safe deposit boxes. They don't have boot sectors and don't get rootkits.