Exchange 2013 ServerComponent状态异常处理

今天客户说内部的打印机发邮件发不出去了,打印机邮件设置是指向CAS的负载均衡地址(两台CAS做的NLB),测试直接指向物理地址,结果一台可以,一台不行,检查不行的一台,发现smtp 25监听正常,但就是连接报错。

clip_p_w_picpath002

于是检查应用程序日志,发现有一条Evend id 7012可疑:

clip_p_w_picpath003

原来exchange 2013有新的变化,服务启动并不表示就完全OK了,他们还有一个状态,必须是Active才行,可以用Get-ServerComponentState –Identity <ServerID>查看:正常如下图,而我的查看全是inactive,所以有问题。

clip_p_w_picpath005

按道理至少需要下面两个组件是active,以便MA组件监控并进行恢复,现在这两个也是inactive,导致系统无法进行恢复操作。

clip_p_w_picpath006

这里有两种处理办法,一种是重启服务器,检查状态,如果不能重启,可以用下面命令手动变更状态:

Set-ServerComponentState ptmailcas01 -Component ServerWideOffline -State Active -Requester Functional

Set-ServerComponentState ptmailcas01 -Component Monitoring -State Active -Requester Functional

Set-ServerComponentState ptmailcas01 -Component RecoveryActionsEnabled -State Active -Requester Functional

上面的ServerWideOffline是覆盖所有组件(除了Monitoring/ RecoveryActionsEnabled两个)

下面是我执行了命令之后,发现仍然有部分组件没有active,即使单独执行命令也不行,这是为什么呢?

clip_p_w_picpath008

应该是这些组件在另外的requester下为inactive,运行下面的命令,id后面用你的服务器名字替换,可以查看组件是在哪个requester下inactive。

$MM = Get-ServerComponentState -id ptmailcas01 -Component oabProxy

$MM.localstates

clip_p_w_picpath010[1]

可以看到oabproxy是在HealthApi Requester位置是Inactive,这时需要变更执行命令:

Set-ServerComponentState ptmailcas01 -Component oabProxy -State Active -Requester HealthApi

执行之后,最后都全部active了,

clip_p_w_picpath012[1]

为了防止这种情况,建议每次重启服务器后运行下面的命令进行一下检查:

Get-ServerComponentState –Identity <ServerID>

但实践中发现,很有可能因为下面两个没有active,导致其他也显示inactive,而实际是active的情况,这时你会发现功能是没有影响的(除了transport服务)。

clip_p_w_picpath006[1]