在日常运行 Exchange 服务时,经常会遇到一些奇怪的问题,记录下来方便以后排除

# HTTP 500

故障问题:可以正常访问 Exchange OWA 地址,登录显示 HTTP 状态码 500

HTTP 500

# 处理方法

尝试过重启 IIS 服务器 Exchange 服务,故障依然存在,打开 Exchange Management Shell 提示连接到远程服务器失败

EMS

经过检查发现 DC-1 这台域控制器上的时间不正确,用管理员权限打开 CMD,重启 w32time 服务,让其自动同步时间

w32time

域控制器上的时间恢复正常后,回到 Exchange 服务器,重启 IIS 服务器 Microsoft Exchange Service 主机服务,重启服务后如果还是一样的报错,请重启 Exchange 服务器

upload successful

# 登录 OWA 发生错误

故障问题: Exhcanghe 服务器因为异常无法正常启动,在 DC 上用 ADSI 编辑器删除了配置里相关的 Exchange 信息,并重装了 Exchange 服务器,安装好 Exchange 服务后,用管理员登录 OWA 报错,登录 ECP 管理中心正常

error

# 处理方法

打开 Exchange Management Shell 输入以下命令查看对应用户的 mailbox 状态

l
Get-MailboxStatistics -identity administrator

upload successful

从报错中可以得知对象 administrator 中缺少重要属性 Database,经过百度发现 Database 属性是在用户属性中的 homeMDB 值里

打开用户和计算机,在查看选项中勾上高级功能,然后在用户属性编辑器中查找 homeMDB 属性

upload successful

发现 administrator 属性中没有 homeMDB 属性,难怪访问邮箱会报错了

先登录 ECP 管理中心,添加一个新的邮箱用户,然后在新的邮箱用户属性中找到 homeMDB 属性,并把值复制下来

然后创建一个 Power Shell 脚本,把 homeMDB 属性加到 administrator 的属性中,脚本代码如下

l
#requires -Version 1 -Modules ActiveDirectory
# create an empty hash table
$custom = @{}
 
# add the attribute names and values
$custom.ExtensionAttribute3 = 12
$custom.ExtensionAttribute4 = 'Hello'
 
# assign the attributes to your current user object
$user = $env:USERNAME
Set-ADUser -Identity $user -Add $custom

NOTE:
代码需要根据自己的需要修改对应的属性名和值,不能直接用哦

执行结果如下:

ps1

运行中没有任何报错,再次打开 administrator 的属性查看发现 homeMDB 属性已经成功添加进去了

homeMDB

重新在 Exchange Management Shell 查看 administrator mailbox 状态正常,并且登录 OWA 正常

ok