Exchange Server 2010部署安装之一
最近刚学习了一下Exchange Server 2010感觉特别酷,而且操作很方便,为了巩固知识,准备将各个功能进行测试,并作一个记录!
理论性的普及,这里可能没有那么专业,但重要点会涉及到,所以,如果你要看这一系列的总结,请最少对Exchange server有一个初步的认识,比如一些名词解释,功能效果等!
总结说明:
安装这一块,分为2篇,第一篇使用GUI的方式,第二篇使用powershell的方式,由于是测试环境,我们没有很好的做规划,暂且就把Exchange安装到08主域上,所以,这2次我们的环境很简单,就是一台08DC!
过程解析
一,首先安装好一台08 server 并提升为域,如图,08dc是主机名,cnmvp.net是域名,系统版本是 08R2 sp1
二,根据官方的部署文档,我们首先应该在集线器传输或者邮箱服务器角色上安装Microsoft Filter Pack,由于我们这次是角色都在一起,所以就不分哪台里安装了,下载地 址:http://www.microsoft.com/en-us/download/details.aspx?id=20109
三,Exchange2010服务器安装时需要有相应的操作系统组件支持,这些操作系统组件在2008 R2中就 是角色和功能。安装Exchange2010所需的组件最好使用Powershell,只需几条语句就可以轻松 搞定。安装不同的Exchange2010角色需要不同的Powershell语句,具体的可以参考: http://technet.microsoft.com/zh-cn/library/bb691354(v=exchg.141).aspx
我们这里是全部安装所以使用如下代码:
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows- Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web- Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC- Over-HTTP-Proxy -Restart
在“开始”菜单上,依次导航到“所有程序”>“附件”>“Windows PowerShell”。打开提升的 Windows PowerShell 控制台并运行以下命令。没有报错就说明成功了!
复制以上代码粘贴到powershell并运行,完成后自动重启
四,在集线器或邮箱服务角色服务器上Net.Tcp Port Sharing Services服务的启动类型设置为自 动,默认是手动启动
五,运行Exchange安装程序,确保前2步已经变成了灰色,说明已经安装好了,选择语言为DVD安装
六,进入Exchange的安装界面,简介略过,接受许可略过,错误报告选择否略过,安装类型里。可 以根据自身情况进行规划,一般MB一台,HUB和CAS一台,Eadg一台,我们这里就使用典型的类 型来安装,选择自定义下一步,注意:我没有使用默认安装路径,实际,由于Ex的日志占用空 间很厉害,所以建议你装到非C盘的其他大容量的盘符上!
七,选择MB、HUB、CAS、MT并下一步
八,指定Exchange的组织名称,可以根据企业的规划来指定,但需要注意的是,这里指的后,后期 安装好就不能再进行修改,所以请慎重考虑!
九,客户端设置,如果环境中还存在outlook的老版本,比如03的,那么必须选择是,如果选择否的 话,他不会创建公用文件夹数据库,公共文件夹数据库的作用后期在谈!所以这里一定要慎重!
十,配置客户端访问服务器外部域,也就是在公网上是以什么域名来访问可以现在指定也可以以后 指定
十一,情况检查,首先会检查安装Ex的前提条件是否都满足,只有满足了才可以继续下去,可以看 出有一个 警告,告诉我们还没有准备域、林等架构,需要使用setup /prepareAD,不过不用 担心,Ex2010会帮我们进行自动扩展,所以说Ex2010部署起来很方便,必须要在手动的一个 一个去准备!
十二,安装完成
十三,完成后的检验,打开Exchange命令行管理程序中运行Get-ExchangeServer | format-list将 显示运行此 cmdlet 时在指定服务器上安装的所有 Exchange 2010 服务器角色。
、
十四,查询日志,通过搜索关键字“error”进行排查,如果有索引到,就根据error后面的信息进 行故障的排查,默认安装日志在c:\exchangesetuplogs\exchangesetup.txt
Exchange Server 2010无人值守安装
根据上一篇的总结,我们已经有了一个初步的认识,这一次使用命令行更加简洁,也适用于无人值守安装的场合。大家熟悉了命令行之后,会喜欢命令行的简洁及效率。
这一次我们还借用上一篇的环境,进行一个全新的安装,当然如果是做冗余的安装也是相同的步骤,只不过有些细节可以稍微注意下,下面会提到!
一,首先安装好一台08 server 并提升为域,如图,08dc是主机名,cnmvp.net是域名,系统版本是08R2 sp1
二,根据官方的部署文档,我们首先应该在集线器传输或者邮箱服务器角色上安装Microsoft Filter Pack,由于我们这次是角色都在一起,所以就不分哪台里安装了,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=20109 他的作用将在后期的文档中进行说明!
三,Exchange2010服务器安装时需要有相应的操作系统组件支持,这些操作系统组件在2008 R2中就是角色和功能。安装Exchange2010所需的组件最好使用Powershell,只需几条语句就可以轻松搞定。安装不同的Exchange2010角色需要不同的Powershell语句,具体的可以参考:http://technet.microsoft.com/zh-cn/library/bb691354(v=exchg.141).aspx
我们这里是全部安装所以使用如下代码:
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart
在“开始”菜单上,依次导航到“所有程序”>“附件”>“Windows PowerShell”。
打开提升的 Windows PowerShell 控制台并运行以下命令。没有报错就说明成功了!
复制以上代码粘贴到powershell并运行,完成后自动重启
如果要使用命令行安装Exchange服务器的其他角色,可以参考下表。
a.CAS, HUB, MBX |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart |
b.CAS, HUB, MBX, UM |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy,Desktop-Experience -Restart |
c.CAS, HUB |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart |
d.HUB, MBX |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server -Restart |
e.CAS, MBX |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart |
f.CAS |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart |
g.HUB or MBX |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server -Restart |
h.UM |
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Desktop-Experience -Restart |
i.EGE |
Add-WindowsFeature NET-Framework,RSAT-ADDS,ADLD |
四,在集线器或邮箱服务角色服务器上Net.Tcp Port Sharing Services服务的启动类型设置为自动,默认是手动启动,注意:start= 后面是需要有一个空格的,不能直接跟 auto,不然会报错
五,完成了准备工作,我们把放入安装光盘,打开cmd,切换到光盘的路径,运行命令:
Setup.com /m:install /r:c,h,m,t /t:d:\ex /on:cnmvp /t:d\ex /enablelegacyoutlook /customerfeedbackenabled:false /mdbname:cnmvp /externalcasserverdomain:mail:cnmvp.net
意思是:运行安装命令,并安装CAS、Hub、Mb、MT,第一组织是cnmvp,安装路径是:d:\ex,开启03版本的客户端访问,不参加客户错误报告,MB的数据库名称是cnmvp,并设定外网访问域名:mail.cnmvp.net
1, 开始复制文件并提示将要进行的动作
2, 执行先决条件的检查,并提示安装程序会通过使用“setup /prepareAD”为Excahgne 2010准备组织
3, 开始配置exchange server,可以看出进行了组织准备、管理工具、集线器、客户端访问、邮箱等角色,配置完成,提示我们需要重启服务器!
关于具体的参数使用,请使用setup /help:install
六,完成后的检验,打开Exchange命令行管理程序中运行Get-ExchangeServer | format-list将显示运行此 cmdlet 时在指定服务器上安装的所有 Exchange 2010 服务器角色。
、
七,查询日志,通过搜索关键字“error”进行排查,如果有索引到,就根据error后面的信息进行故障的排查,默认安装日志在c:\exchangesetuplogs\exchangesetup.txt
Exchange Server 2010用户管理
以后的文档,如无特殊说明,都是根据第一篇的拓扑来进行的,我们已经建立好了Exchange Server 2010本次,我们来进行用户邮箱的建立!
本节分为以下六部分:
→常规创建用户邮箱
→powershell建立单个用户邮箱
→powershell批量建立用户邮箱
→powershell批量启用用户邮箱
→个别BUG说明并提供解决方案
→总结
一 常规用户邮箱的建立
1, 由于常规建立邮箱方法很简单,我们大概说下,打开EMC—收件人策略—邮箱,在空白处,右键新建邮箱
用户邮箱:请看截图中的解释
会议室邮箱:是一个资源邮箱,在域中是被禁用的,只是一种资源被调用的
设备邮箱:同上
链接邮箱:比如收购了一家公司,对方还没有邮箱,但有域环境,这个时候可以不再对方域里搭建Exchange,可以通过链接邮箱,直接在本公司里建立邮箱,但这个邮箱账号是对方公司AD域里的账号,有机会在做测试!
2, 新建用户或者现有用户,一个是AD域里还不存在这个账号,在新建的时候可以同时建立AD账号以及邮箱,一个是现有用户,也就是说账号必须已经存在AD数据库里,下一步,在用户信息里
可以选择用户所在的OU,并可以勾选用户下次登录是否要更改密码
3, 邮箱设置里,如果有多个数据库可以进行选择,默认情况下,邮箱的组成是根据别名来的,可以更改,后期在讲!完成后就已经新建立了一个用户邮箱!
4, 说明一点需要注意的,选中tom可以看到一个禁用和删除,这一点我们要特别注意,禁用的意思就是取消tom的邮箱功能,删除的意思是从AD数据库里删除这个账号以及邮箱,因为EMC和AD的管理功能进行了集合,所以操作的时候一定要谨慎!其他的属性,后期在慢慢分类来讲!
5, 如果进行了禁用的操作,tom已经不能使用邮箱了,但账号还在,我们需要进行重新的关联,打开断开连接的邮箱,选中tom进行连接
6, 选择现有用户,找到tom,并设置别名tom,下一步完成就可以找回tom的邮箱了,但如果是删除的操作,那么就需要进行恢复了!所以谨慎行事!
二 使用powershell建立用户
1, 打开EMS,输入以下代码;
New-mailbox –name ‘bobo’ –alias ‘bobo’ –organizationalunit ‘cnmvp.net/mis’ –userparincipalname ‘[email protected]’ –samaccountname ‘bobo’ –firstname ‘’ –initials ‘’ –lastname ‘bobo’
2,EMS提示需要有凭据,我们输入bobo的密码确定即可
三 使用powershell批量的建立用户
说明:这种方式适合初期规划的企业,一次性的把公司所有的账号进行创建等!
1, 首先建立一个csv文件,打开excel,按图中的格式进行排版,完成后另存为addmailbox.csv格式的文件
请注意,OU一栏,请首先在AD数据库里进行建立,并保持我们的设定值,也就是hr在cnmvp域名的下一级目录
2, 打开EMS,输入代码
Import-CSV "C:\addmailbox.csv" | ForEach-Object -process {$Temp = ConvertTo-SecureString $_.Password -asPlainText -force;New-Mailbox -Name $_.Name -UserPrincipalName $_.UPN -OrganizationalUnit $_.OU -Database "Mailbox Database" -Password $Temp }
Import-CSV 命令读取 Addmailbox.csv 文件的内容。CSV 文件的内容随后通过管道传递给 ForEach-Object 命令,后者执行一个脚本块,为 CSV 文件中列出的每个明细项目新建邮箱。脚本块中的 ConvertTo-SecureString 命令将 CSV 文件中的纯文本密码转换为安全字符串,并将其存储在临时变量 $Temp 中。New-Mailbox 命令会新建邮箱,并使用 $Temp 变量创建新用户的密码。
这里需要需要特别注意,我查了很多的资料,网上流传最广的一个代码是:
Import-CSV "C:\NewUsers.csv" | ForEach-Object -process {$Temp = ConvertTo-SecureString $_.Password -asPlainText -force;New-Mailbox -Name $_.Name -UserPrincipalName $_.UPN -OrganizationalUnit $_.OU -Database "Mailbox Database" -Password $Temp -TemplateInstance $Template}
差别就是蓝色的参数,多次进行测试,根本就通不过,会报错,如图
经过查阅相关资料:http://technet.microsoft.com/zh-cn/library/bb125152.aspx 证实,TemplateInstance是Exchange server 2007的参数,在2010里并不适用,所以请大家注意,根据相应的版本选择相应的参数!
3, 返回邮箱控制台,我们可以看到已经批量建立出来的邮箱,当然AD也一定有这个账号
4, 使用其中一个账号登录测试,账号9已经 可以登录邮箱
四 powershell批量启用用户邮箱
说明:此方法适合那些后来增加了Exchange服务,但是已经有AD账号了,需要批量进行启用现有账号的邮箱
1, 建立一个OU,并建立四个用户,来模拟我们的环境
2, 打开EMS,使用以下参数进行启用
Get-user –Organizationalunit mis | enable-mailbox
先获取MIS这个Ou里的所有用户,然后获取都的结果作为后面命令enable的一个条件!当然,如果有需要也可以获取到全部的用户,然后全部启用!
3, 使用Alice进行登录
五:BUG说明以及解决方案
说明:有些中文字符在powershell的支持好像不是很好,相信细心的朋友已经看到了,批量建立的时候显示名是乱码,这个还没有找到相关修改的代码,并且启用MIS里的用户邮箱的时候,甜甜的alias名字时乱码,在EMC里显示的是乱码,在我们的实际生产环境中,以中文命名的几率基本是100%,所以这也就造成了我们的一些不便!
针对启用邮箱出现的乱骂我们有2种解决方法,第一种解决方法如下:
将下列内容copy到一个记事本中,并把这个文件存为alias.ps1文件
$list=Get-Mailbox
ForEach ($item in $list)
{
$user=Get-User $item
$sam=$user.SAMAccountName
Set-Mailbox $item –Alias "$sam"
}
注:$list=Get-Mailbox代表邮箱变量。
$item代表每个邮箱的属性变量。
$sam=$user.SAMAccountName代表每个用户的登录名变量
把alias.ps1文件保存到C盘目录下。然后打开EMS输入:c:\1.ps1
修复后的结果!
第二种解决方法是:
function NewMailUser
{
Enable-Mailbox -Identity ($_.split(","))[0] -Alias ($_.split(","))[1]
}
gc alias.csv | foreach {NewMailUser}
其中“function”为整个脚本定义函数,“NewMailUser”为定义的函数
大括号中的为启用邮箱Powershell 命令,“($_.split(","))[0]”代表调用CSV 文本文件内编号为0 的
的列,分隔符为逗号
其中“Gc alias.csv”代表被调用的CSV 文件(需要完整路径)
管道符后的“foreach ”为批量执行函数“NewMailUser”直到CSV 文件行尾
alias.csv的内容格式如下:
第一行是显示名,第二行是登录名,这里的内容必须要求这些账号已经在AD里存在了!如果不存在那就属于新建立了,我们这里是要求启用现有用户的邮箱,而且没有乱码,请搞清楚我们的需求
但对于批量新建用户邮箱的乱码情况,还没找到,大家可以补充一下:可以暂时的曲线解决!
1, 批量建立AD用户的方法很多很多,之前也写过,这里就不再过多的去叙述,当然网上也有很多,大家可以随便搜索下:http://itmydream.blog.51cto.com/961933/981211
2, 相信经过第一步,建好账号后,如何启用我们在第四步已经进行测试了,所以,大家只需要跟着做就行!这里也不过多的去解释演示了!
3, 如果大家有更好的方法,请及时通知我,我会立即更改这篇文章!
六:总结
在这次测试过程中,我遇到了一个问题,就是那个参数TemplateInstance的问题,折腾了好久,经过多次的测试修改代码,最终才确定了问题所在,但也浪费了我很久的时间,从这个事例中,我们应该清醒,网上上的资料不一定都适合,不是说没有正确性,而是没有针对性,提问者没有交代自己的环境以及使用的版本,回答者或者文档发布者也没有有针对性的进行回答注明,造成了一个版本的标准答案,在另外一个版本上就是不能生效,微软的版本发展很快,可能这一版本还没怎么用,下一个版本就已经出来了,所以,不管是读者还是作者,都担负起那份心,那份责任!
在实际的操作中,明显的感觉到powershell的高效,也发现了微软多年的一成不变的习惯也开始慢慢的发生变化,由复杂变简单,由一种方式变成了多种方式的操作,最大的感触就是在GUI下,达成一个目标,相对之前的版本真的很方便,很省时!