De Exchange 2013 architectuur kent nog maar twee rollen, anders dan voorgaande versies van Exchange. De taken die voorheen werden uitgevoerd door de Mailbox, Client Access, Hub Transport en Unified Messaging rol zijn nu verdeeld over de nieuwe Mailbox en Client Access rol. Daarbij is het goed om te weten dat de rol van de Client Access rol sterk veranderd is, bij Exchange 2013 is dit niet meer dan een doorgeefluikje naar de Mailbox rol. Of het nu gaat om EWS, Outlook Anywhere, POP connecties of zelfs Remote PowerShell.
Dat laatste blijkt wanneer we het Test-ServiceHealth cmdlet gebruiken tegen de CAS server.
[PS] C:\>Test-ServiceHealth
Role : Mailbox Server Role
RequiredServicesRunning : True
ServicesRunning : {IISAdmin, MSExchangeADTopology, MSExchangeDelivery, MSExchangeIS,
MSExchangeMailboxAssistants, MSExchangeRepl, MSExchangeRPC, MSExchangeServiceHost,
MSExchangeSubmission, MSExchangeThrottling, MSExchangeTransportLogSearch, W3Svc, WinRM}
ServicesNotRunning : {}
Role : Client Access Server Role
RequiredServicesRunning : True
ServicesRunning : {IISAdmin, MSExchangeADTopology, MSExchangeMailboxReplication, MSExchangeRPC,
MSExchangeServiceHost, W3Svc, WinRM}
ServicesNotRunning : {}
Role : Unified Messaging Server Role
RequiredServicesRunning : True
ServicesRunning : {IISAdmin, MSExchangeADTopology, MSExchangeServiceHost, MSExchangeUM, W3Svc, WinRM}
ServicesNotRunning : {}
Role : Hub Transport Server Role
RequiredServicesRunning : True
ServicesRunning : {IISAdmin, MSExchangeADTopology, MSExchangeEdgeSync, MSExchangeServiceHost,
MSExchangeTransport, MSExchangeTransportLogSearch, W3Svc, WinRM}
ServicesNotRunning : {}
Op het eerste gezicht lijkt de output helemaal in orde, alle benodigde services draaien. Maar wat doen de Mailbox en Unified Messaging rol daar, die horen toch bij de Exchange 2013 Mailbox rol? Wat blijkt nu, het commando is keurig ge-proxied naar de Mailbox server en daar uitgevoerd.
Maar als we de –Server parameter gebruiken en de naam van een CAS server opgeven dan krijgen we deze foutmelding:
[PS] C:\>Test-ServiceHealth -Server Cas.domain.local
There are no Microsoft Exchange 2007 server roles installed on Cas.domain.local.
+ CategoryInfo : InvalidArgument: (:) [Test-ServiceHealth], NoExchangeRoleInstalledException
+ FullyQualifiedErrorId : 60CED452,Microsoft.Exchange.Monitoring.TestServiceHealth
+ PSComputerName : Cas.domain.local
De conclusie is dus dat het niet mogelijk is om Test-ServiceHealth te gebruiken om de services van een CAS server te monitoren, dit als gevolg van de nieuwe architectuur van Exchange 2013. Dus ook bij het werken met PowerShell geldt dat de Client Access rol slechts een doorgeefluik, een proxy is. Goed om rekening mee te houden.