Quick fix: There are no Microsoft Exchange 2007 server roles installed on…

quickfixВсем привет!

Обнаружилась весьма странная вещь при использовании командлета Test-ServiceHealth. Если его запустить с параметром –Server и указать CAS сервер, то в результате получим следующую ошибку:

“There are no Microsoft Exchange 2007 server roles installed on server.fqdn.name”. И это на Exchange 2013…

Для проверки, заходим на этот CAS сервер и выполняем команду локально:

[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      : {}

 

 

Если же эту команду запустить так же локально, но с указанием имени сервера, то в результате будет ошибка:

[PS] C:\>Test-ServiceHealth -Server CAS-msk-01
There are no Microsoft Exchange 2007 server roles installed on CAS-MSK-01.E13.Lab.

    + CategoryInfo          : InvalidArgument: (:) [Test-ServiceHealth], NoExchangeRoleInstalledException

    + FullyQualifiedErrorId : E3CA121D,Microsoft.Exchange.Monitoring.TestServiceHealth

    + PSComputerName        : cas-msk-01.e13.lab

 

Теперь пробуем понять, почему так. Запускаем эту команду еще раз, но уже с ключом –Verbose:

[PS] C:\>Test-ServiceHealth -Verbose
VERBOSE: [07:06:24.998 GMT] Test-ServiceHealth : Initializing Active Directory server settings for the remote Windows 
PowerShell session.
VERBOSE: [07:06:24.998 GMT] Test-ServiceHealth : Active Directory session settings for 'Test-ServiceHealth' are: View 
Entire Forest: 'False', Default Scope: 'E13.Lab', Configuration Domain Controller: 'DC-MSK-01.E13.Lab', Preferred 
Global Catalog: 'DC-MSK-01.E13.Lab', Preferred Domain Controllers: '{ DC-MSK-01.E13.Lab }'
VERBOSE: [07:06:24.998 GMT] Test-ServiceHealth : Runspace context: Executing user: E13.Lab/Users/Msft, Executing user 
organization: , Current organization: , RBAC-enabled: Enabled.
VERBOSE: [07:06:24.998 GMT] Test-ServiceHealth : Beginning processing 
VERBOSE: [07:06:25.014 GMT] Test-ServiceHealth : Instantiating handler with index 0 for cmdlet extension agent "Admin 
Audit Log Agent".
VERBOSE: [07:06:25.092 GMT] Test-ServiceHealth : Current ScopeSet is: { Recipient Read Scope: {{, }}, Recipient Write 
Scopes: {{, }}, Configuration Read Scope: {{, }}, Configuration Write Scope(s): {{, }, }, Exclusive Recipient Scope(s):
 {}, Exclusive Configuration Scope(s): {} }
VERBOSE: Testing service health on "DAG1-01.E13.Lab".
VERBOSE: [07:06:25.123 GMT] Test-ServiceHealth : Resolved current organization: .


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      : {}

 

Получается, когда мы запускаем командлет Test-ServiceHealth на сервере с ролью CAS, то проверка служб проводится на другом сервере, а именно на MBX сервере того же AD сайта. Как раз имя MBX сервера и можно увидеть в листинге последней команды (DAG1-01.E13.Lab).

Все дело в том, что CAS сервер, как и ему положено, проксирует не только подключения клиентов к Exchange сервисам, но оказывается и проксирует подключения Powershell на MBX сервер. Если же на MBX сервере остановить Application Pool в IIS, отвечающий за Powershell, то любая команда на CAS сервере будет завершаться с ошибкой. Хотя конечная причина этой ошибки нигде отражена не будет.

 

Удачи!

Читайте также:

Добавить комментарий