292 4.13 Testing Exchange 2007
IsClientAccessServer : False
IsExchange2007OrLater : False
IsEdgeServer : False
IsMailboxServer : False
IsMemberOfCluster : No
IsProvisionedServer : False
IsUnifiedMessagingServer : False
OrganizationalUnit : xyz.com/ExchSvr2003
AdminDisplayVersion : Version 6.5 (Build 7638.2: Service Pack 2)
Site :
ServerRole : None
IsExchange2007TrialEdition : False
IsExpiredExchange2007TrialEdition : False
RemainingTrialPeriod : 00:00:00
IsValid : True
OriginatingServer : DC23.xyz.com
ExchangeVersion : 0.0 (6.5.6500.0)
ObjectClass : {top, server, msExchExchangeServer}
WhenChanged : 9/18/2006 5:23:44 PM
WhenCreated : 2/21/2003 3:46:28 PM
The Get-Mailbox and Get-CasMailbox commands work for mailboxes on
legacy Exchange servers but other commands such as
Get-MailboxStatistics
and Get-MailboxDatabase do not. Because you cannot be sure that all of the
EMS commands will work against legacy servers, the best idea is to follow the
guideline of managing legacy Exchange servers with legacy tools and managing
Exchange 2007 servers with Exchange 2007 tools.
Because PowerShell supports many different providers through a consis-
tent interface, you can write code that mixes and matches data from multiple
sources to automate reports, provisioning of servers, and other administrative
operations. While it is true that you will encounter some limitations (such as
the fact that using WMI to work with Exchange 2003 servers has not the
same potential as using PowerShell to work directly with Exchange 2007
servers), there is still a lot of useful work that PowerShell can do in a multi-
version Exchange environment.
4.13 Testing Exchange 2007
Exchange 2007 provides a set of shell commands that you can use to verify
that everything is working correctly on a server. This is the first time that
Microsoft has provided commands to help administrators check that
Exchange is working properly and as you look at the comprehensive suite of
4.13 Testing Exchange 2007 293
Chapter 4
test commands available in Exchange 2007, you cant help reflecting that it
has taken Microsoft a long time to fill in this particular gap. You need to have
Exchange administrative permissions over a server before you can execute
these commands.
The first step in testing a system is to check that all the necessary com-
ponents are present and are at the right revision level. The
Test-System-
Health
command helps by scanning a server to verify that it is running the
correct versions of software (related to Exchange 2007) and to detect some
other conditions that may cause Exchange 2007 a problem. Before it runs,
the
Test-SystemHealth command checks the Microsoft web site for any
updates that it should know about to be able to test a server accurately.
Figure 4.16 shows the result of running
Test-SystemHealth on a server
that runs a beta version of Exchange 2007 and you can see how the com-
mand reports this issue. More importantly,
Test-SystemHealth reported that
a driver is present (for HP Remote Insight Manager) that does not meet the
Microsoft standards for some reason. There may be a good reason why the
driver is not compliant, but it is always best to check out errors that
Exchange flags like this.
From the perspective of Exchange, the most basic test that you can per-
form is to determine whether all the services that collectively make up the
different server roles in Exchange 2007 are running on a server. Use the
Test-ServerHealth command for this purpose. As you can see, Exchange
responds with the server roles that are installed on the target server and a list
of services that are running plus any that are not currently operational.
Test-ServerHealth –Server ExchMbxSvr1
Figure 4.16
The results of the
Test-SystemHealth
command
294 4.13 Testing Exchange 2007
Role RequiredServicesRunning ServicesRunning ServicesNotRunning
---- ----------------------- --------------- ------------------
Mailbox True IISAdmin
MSExchangeADTopology
MSExchangeIS
MSExchangeMailboxAssis
tants
MSExchangeMailSubmissi
on
MSExchangeRepl
MSExchangeSA
MSExchangeSearch
MSExchangeServiceHost
MSExchangeTransportLog
Search
MSFTESQL-Exchange
W3Svc
Client Access True IISAdmin
MSExchangeADTopology
MSExchangeFDS
MSExchangeIMAP4
MSExchangePOP3
MSExchangeServiceHost
W3Svc
Hub Transport True MSExchangeADTopology
MSExchangeEdgeSync
MSExchangeTransport
MSExchangeTransportLog
Searc
h
4.13.1 Client connections
The Test-MapiConnectivity command verifies that clients can make MAPI
connections to a database. If you run this command on a mailbox server,
Exchange attempts to make a connection to every mailbox database on the
server and reports how quickly it can make the connection. You can specify
the name of a server or a mailbox database to focus in on a specific issue. If
you do not specify the name of a mailbox to connect to, then Exchange con-
nects to the special system mailbox in the database. This command runs a
quick check against a selected mailbox server:
Test-MapiConnectivity –Server ExchMbxSvr1
MailboxServer Database Result Latency(MS) Error
------------- -------- ------ ----------- -----
ExchMbxSvr1 VIP Mailboxes Success 5
ExchMbxSvr1 new Mailboxes Success 4

Get Microsoft Exchange Server 2007: Tony Redmond's Guide to Successful Implementation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.