Exchange Server 2010部署安装

Exchange Server 2010部署安装之一

 

最近刚学习了一下Exchange Server 2010感觉特别酷,而且操作很方便,为了巩固知识,准备将各个功能进行测试,并作一个记录!

 

理论性的普及,这里可能没有那么专业,但重要点会涉及到,所以,如果你要看这一系列的总结,请最少对Exchange server有一个初步的认识,比如一些名词解释,功能效果等!

 

总结说明:

 

安装这一块,分为2篇,第一篇使用GUI的方式,第二篇使用powershell的方式,由于是测试环境,我们没有很好的做规划,暂且就把Exchange安装到08主域上,所以,这2次我们的环境很简单,就是一台08DC!

 

过程解析

 

一,首先安装好一台08 server 并提升为域,如图,08dc是主机名,cnmvp.net是域名,系统版本是     08R2 sp1

 

    clip_image001

 

    clip_image002

 

二,根据官方的部署文档,我们首先应该在集线器传输或者邮箱服务器角色上安装Microsoft           Filter Pack,由于我们这次是角色都在一起,所以就不分哪台里安装了,下载地                 址:http://www.microsoft.com/en-us/download/details.aspx?id=20109

 

    clip_image003

 

三,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 控制台并运行以下命令。没有报错就说明成功了!

 

   clip_image004

 

   复制以上代码粘贴到powershell并运行,完成后自动重启

 

   clip_image006

 

四,在集线器或邮箱服务角色服务器上Net.Tcp Port Sharing Services服务的启动类型设置为自       动,默认是手动启动

 

    clip_image007

 

五,运行Exchange安装程序,确保前2步已经变成了灰色,说明已经安装好了,选择语言为DVD安装

 

     clip_image009

 

六,进入Exchange的安装界面,简介略过,接受许可略过,错误报告选择否略过,安装类型里。可     以根据自身情况进行规划,一般MB一台,HUB和CAS一台,Eadg一台,我们这里就使用典型的类     型来安装,选择自定义下一步,注意:我没有使用默认安装路径,实际,由于Ex的日志占用空     间很厉害,所以建议你装到非C盘的其他大容量的盘符上!

 

    clip_image011

 

七,选择MB、HUB、CAS、MT并下一步

 

    clip_image013

 

八,指定Exchange的组织名称,可以根据企业的规划来指定,但需要注意的是,这里指的后,后期     安装好就不能再进行修改,所以请慎重考虑!

 

    clip_image015

 

九,客户端设置,如果环境中还存在outlook的老版本,比如03的,那么必须选择是,如果选择否的    话,他不会创建公用文件夹数据库,公共文件夹数据库的作用后期在谈!所以这里一定要慎重!

 

    clip_image017

 

十,配置客户端访问服务器外部域,也就是在公网上是以什么域名来访问可以现在指定也可以以后     指定

 

    clip_image019

 

十一,情况检查,首先会检查安装Ex的前提条件是否都满足,只有满足了才可以继续下去,可以看       出有一个 警告,告诉我们还没有准备域、林等架构,需要使用setup /prepareAD,不过不用       担心,Ex2010会帮我们进行自动扩展,所以说Ex2010部署起来很方便,必须要在手动的一个       一个去准备!

 

     clip_image021

 

十二,安装完成

 

    clip_image023

 

十三,完成后的检验,打开Exchange命令行管理程序中运行Get-ExchangeServer | format-list将       显示运行此 cmdlet 时在指定服务器上安装的所有 Exchange 2010 服务器角色。

 

    clip_image025

 

十四,查询日志,通过搜索关键字“error”进行排查,如果有索引到,就根据error后面的信息进       行故障的排查,默认安装日志在c:\exchangesetuplogs\exchangesetup.txt

 

     clip_image027

Exchange Server 2010无人值守安装

 

根据上一篇的总结,我们已经有了一个初步的认识,这一次使用命令行更加简洁,也适用于无人值守安装的场合。大家熟悉了命令行之后,会喜欢命令行的简洁及效率。

 

这一次我们还借用上一篇的环境,进行一个全新的安装,当然如果是做冗余的安装也是相同的步骤,只不过有些细节可以稍微注意下,下面会提到!

 

一,首先安装好一台08 server 并提升为域,如图,08dc是主机名,cnmvp.net是域名,系统版本是08R2 sp1

 

     clip_image001

 

    clip_image002

 

二,根据官方的部署文档,我们首先应该在集线器传输或者邮箱服务器角色上安装Microsoft Filter Pack,由于我们这次是角色都在一起,所以就不分哪台里安装了,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=20109 他的作用将在后期的文档中进行说明!

 

clip_image003

 

三,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 控制台并运行以下命令。没有报错就说明成功了!

 

clip_image004

 

复制以上代码粘贴到powershell并运行,完成后自动重启

 

clip_image006

 

如果要使用命令行安装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,不然会报错

 

clip_image007

 

五,完成了准备工作,我们把放入安装光盘,打开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

 

clip_image009

 

1, 开始复制文件并提示将要进行的动作

 

clip_image010

 

2, 执行先决条件的检查,并提示安装程序会通过使用“setup /prepareAD”为Excahgne 2010准备组织

 

clip_image012

 

3, 开始配置exchange server,可以看出进行了组织准备、管理工具、集线器、客户端访问、邮箱等角色,配置完成,提示我们需要重启服务器!

 

clip_image014

 

关于具体的参数使用,请使用setup /help:install

 

clip_image016

 

六,完成后的检验,打开Exchange命令行管理程序中运行Get-ExchangeServer | format-list将显示运行此 cmdlet 时在指定服务器上安装的所有 Exchange 2010 服务器角色。

 

clip_image018

 

七,查询日志,通过搜索关键字“error”进行排查,如果有索引到,就根据error后面的信息进行故障的排查,默认安装日志在c:\exchangesetuplogs\exchangesetup.txt

 

clip_image020

Exchange Server 2010用户管理

 

以后的文档,如无特殊说明,都是根据第一篇的拓扑来进行的,我们已经建立好了Exchange Server 2010本次,我们来进行用户邮箱的建立!

 

本节分为以下六部分:

 

→常规创建用户邮箱

 

→powershell建立单个用户邮箱

 

→powershell批量建立用户邮箱

 

→powershell批量启用用户邮箱

 

→个别BUG说明并提供解决方案

 

→总结

 

一 常规用户邮箱的建立

 

1, 由于常规建立邮箱方法很简单,我们大概说下,打开EMC—收件人策略—邮箱,在空白处,右键新建邮箱

 

用户邮箱:请看截图中的解释

 

会议室邮箱:是一个资源邮箱,在域中是被禁用的,只是一种资源被调用的

 

设备邮箱:同上

 

链接邮箱:比如收购了一家公司,对方还没有邮箱,但有域环境,这个时候可以不再对方域里搭建Exchange,可以通过链接邮箱,直接在本公司里建立邮箱,但这个邮箱账号是对方公司AD域里的账号,有机会在做测试!

 

clip_image002

 

2, 新建用户或者现有用户,一个是AD域里还不存在这个账号,在新建的时候可以同时建立AD账号以及邮箱,一个是现有用户,也就是说账号必须已经存在AD数据库里,下一步,在用户信息里

 

可以选择用户所在的OU,并可以勾选用户下次登录是否要更改密码

 

clip_image003

 

3, 邮箱设置里,如果有多个数据库可以进行选择,默认情况下,邮箱的组成是根据别名来的,可以更改,后期在讲!完成后就已经新建立了一个用户邮箱!

 

clip_image005

 

4, 说明一点需要注意的,选中tom可以看到一个禁用和删除,这一点我们要特别注意,禁用的意思就是取消tom的邮箱功能,删除的意思是从AD数据库里删除这个账号以及邮箱,因为EMC和AD的管理功能进行了集合,所以操作的时候一定要谨慎!其他的属性,后期在慢慢分类来讲!

 

clip_image006

 

5, 如果进行了禁用的操作,tom已经不能使用邮箱了,但账号还在,我们需要进行重新的关联,打开断开连接的邮箱,选中tom进行连接

 

clip_image007

 

6, 选择现有用户,找到tom,并设置别名tom,下一步完成就可以找回tom的邮箱了,但如果是删除的操作,那么就需要进行恢复了!所以谨慎行事!

 

clip_image008

 

二 使用powershell建立用户

 

1, 打开EMS,输入以下代码;

 

New-mailbox –name ‘bobo’ –alias ‘bobo’ –organizationalunit ‘cnmvp.net/mis’ –userparincipalname ‘bobo@cnmvp.net’ –samaccountname ‘bobo’ –firstname ‘’ –initials ‘’ –lastname ‘bobo’

 

clip_image010

 

2,EMS提示需要有凭据,我们输入bobo的密码确定即可

 

clip_image012

 

三 使用powershell批量的建立用户

 

说明:这种方式适合初期规划的企业,一次性的把公司所有的账号进行创建等!

 

1, 首先建立一个csv文件,打开excel,按图中的格式进行排版,完成后另存为addmailbox.csv格式的文件

 

请注意,OU一栏,请首先在AD数据库里进行建立,并保持我们的设定值,也就是hr在cnmvp域名的下一级目录

 

clip_image013

 

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 变量创建新用户的密码。

 

clip_image015

 

这里需要需要特别注意,我查了很多的资料,网上流传最广的一个代码是:

 

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}

 

差别就是蓝色的参数,多次进行测试,根本就通不过,会报错,如图

 

clip_image017

 

经过查阅相关资料:http://technet.microsoft.com/zh-cn/library/bb125152.aspx 证实,TemplateInstance是Exchange server 2007的参数,在2010里并不适用,所以请大家注意,根据相应的版本选择相应的参数!

 

3, 返回邮箱控制台,我们可以看到已经批量建立出来的邮箱,当然AD也一定有这个账号

 

clip_image019

 

4, 使用其中一个账号登录测试,账号9已经 可以登录邮箱

 

clip_image021

 

四 powershell批量启用用户邮箱

 

说明:此方法适合那些后来增加了Exchange服务,但是已经有AD账号了,需要批量进行启用现有账号的邮箱

 

1, 建立一个OU,并建立四个用户,来模拟我们的环境

 

image

 

2, 打开EMS,使用以下参数进行启用

 

Get-user –Organizationalunit mis | enable-mailbox

 

先获取MIS这个Ou里的所有用户,然后获取都的结果作为后面命令enable的一个条件!当然,如果有需要也可以获取到全部的用户,然后全部启用!

 

image

 

3, 使用Alice进行登录

 

clip_image026

 

五:BUG说明以及解决方案

 

说明:有些中文字符在powershell的支持好像不是很好,相信细心的朋友已经看到了,批量建立的时候显示名是乱码,这个还没有找到相关修改的代码,并且启用MIS里的用户邮箱的时候,甜甜的alias名字时乱码,在EMC里显示的是乱码,在我们的实际生产环境中,以中文命名的几率基本是100%,所以这也就造成了我们的一些不便!

 

clip_image002[1]

 

针对启用邮箱出现的乱骂我们有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

 

clip_image003[1]

 

修复后的结果!

 

clip_image005[1]

 

第二种解决方法是:

 

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的内容格式如下:

 

clip_image006[1]

 

第一行是显示名,第二行是登录名,这里的内容必须要求这些账号已经在AD里存在了!如果不存在那就属于新建立了,我们这里是要求启用现有用户的邮箱,而且没有乱码,请搞清楚我们的需求

 

clip_image007[1]

 

clip_image008[1]

 

但对于批量新建用户邮箱的乱码情况,还没找到,大家可以补充一下:可以暂时的曲线解决!

 

1, 批量建立AD用户的方法很多很多,之前也写过,这里就不再过多的去叙述,当然网上也有很多,大家可以随便搜索下:http://itmydream.blog.51cto.com/961933/981211

 

2, 相信经过第一步,建好账号后,如何启用我们在第四步已经进行测试了,所以,大家只需要跟着做就行!这里也不过多的去解释演示了!

 

3, 如果大家有更好的方法,请及时通知我,我会立即更改这篇文章!

 

 

 

六:总结

 

在这次测试过程中,我遇到了一个问题,就是那个参数TemplateInstance的问题,折腾了好久,经过多次的测试修改代码,最终才确定了问题所在,但也浪费了我很久的时间,从这个事例中,我们应该清醒,网上上的资料不一定都适合,不是说没有正确性,而是没有针对性,提问者没有交代自己的环境以及使用的版本,回答者或者文档发布者也没有有针对性的进行回答注明,造成了一个版本的标准答案,在另外一个版本上就是不能生效,微软的版本发展很快,可能这一版本还没怎么用,下一个版本就已经出来了,所以,不管是读者还是作者,都担负起那份心,那份责任!

 

在实际的操作中,明显的感觉到powershell的高效,也发现了微软多年的一成不变的习惯也开始慢慢的发生变化,由复杂变简单,由一种方式变成了多种方式的操作,最大的感触就是在GUI下,达成一个目标,相对之前的版本真的很方便,很省时!

 

 

posted on 2012-12-16 23:41  周德顺  阅读(1671)  评论(0编辑  收藏  举报