/ 中存储网

如何利用Windows PowerShell改变Exchange Server 2007管理工作

2014-08-28 23:29:59 来源:中存储网

我以前曾是一个GUI依赖者,但是现在我已经是一位Windows PowerShell专家了:这会是许多Exchange Server管理员将要到达微软在Exchange Server 2007里创建的管理场景里所作的一种转换。Exchange Server 2007的Exchange Management Shell使用PowerShell命令来执行并自动完成普通活动,比如在服务器之间移动邮箱。实际上,你可以执行一些操作,比如只通过shell命令设置诊断日志,管理公共文件夹,以及为transport服务改变参数(微软声称将会在Exchange Server 2007 Service Pack 1里为公共文件夹再次引入GUI管理)。
让我们开始看看你运行Exchange环境所需要的一些PowerShell基础。下面的内容将会深入研究当管理Exchange Server 2007时如何从PowerShell中获取最大的利益。

一个新的管理体系
在Exchange之前的版本里,管理员的管理选项仅限于微软所提供的选项,尤其是Exchange Server 5.5以及更早的版本中的Administrator程序,或者Exchange 2000 Server以及后面版本中的Exchange System Manager(ESM)。管理员可以一直使用注册表来改变Exchange组件的工作方式,但是在大多数情况下,你可以只通过存在于GUI的选项来管理Exchange。如果你想创建脚本来自动化管理任务,你会遇到一个令人迷惑的API混乱情况,比如Collaboration Data Objects for Exchange Management(CDOEXM)、Windows Management Instrumentation(WMI),以及Exchange Routing Objects,它们都不能同超过两个版本的Exchange一起工作。
Exchange Server 2007为管理员带来一个完全不同的体验。你仍然有一个管理程序,像ESM,建立在Microsoft Management Console(MMC)框架上,但是新的Exchange Management Console可以提供更多有效的选项,如图1所示。微软公司对于新的管理控制台的目标是减少获得有用信息(比如一个邮箱的属性信息)所需要的点击数量 ,并且把所有的管理操作组合到一个地方,而不是把一些管理操作放到MMC Active Directory Users and Computers管理单元里,而另一些放到ESM里。Exchange Management Console还将一组工具整合到一个工具箱里,你可以在这个工具箱里找到比如修改Message Tracking工具的选项,以及一个Exchange Server Best Practices Analyzer的更新版本。你可能需要一段时间来适应新的控制台,但是整体上它成功地为Exchange带来了一个更加内聚,并且更加有效管理的程序。

图1:新的Exchange Management Console可以提供更多有效的选项

Exchange Server 2007在管理体系上呈现了一个根本的文化变迁。GUI提供了便于访问普通的管理操作,并且你将会经常使用它,但是Exchange Server 2007包含的PowerShell在它的深度、覆盖率,以及能力上稍微有点令人吃惊。你现在可以创建你的组织所需要的管理框架,而不是等待一个微软公司的开发人员来帮你处理这个工作。如果需要执行一个Exchange Management Console没有提供的任务,你可以十分确信的是你自己使用一个PowerShell命令就可以创建该选项。

深入Shell 
PowerShell提供一个优秀的命令集(单独的命令被称为cmdlets)来管理标准的Windows组件。(有关cmdlets的更多信息,详见本刊2006年9月文章“Windows PowerShell——不会再被UNIX管理员嘲笑”,以及2007年4月文章“Exchange Server 2007:没有ExMerge会怎样?”)例如:下列命令列出了在一个服务器上的大多数的CPU资源里的10个进程:
Get-Process | sort CPU –descending | select –first 10
图2显示了此命令的范例输出结果。

图2:CPU分类命令的范例输出结果

Exchange Server 2007安装程序安装Exchange Management Console和Exchange Management Shell,一个PowerShell的管理单元。通过Exchange Management Shell管理单元安装Exchange Server 2007来添加与Exchange有关的标准的PowerShell cmdlets命令。虽然你一般可以从开始菜单里调用Exchange Management Shell,但是你还可以通过使用下面的命令来加载它:
Add-Pssnapin Microsoft.Exchange.Management.Msh.Admin
为了列出构成Exchange Server 2007的那些服务集,你可以键入:
Get-Service *Exch* | Select DisplayName, Status
图3显示了由此命令输出的一个编辑版本。 

图3:Get-Service cmdlets命令的范例输出结果

正如你所看到的,PowerShell使用一个一致性语法,由一个动词(例如,Get、Set、Move、Disable)后面是一个名词(例如,Mailbox、User)组成。有了执行对象的命令,你将找到帮助你处理数据的命令,比如Where、Sort、Group、Import- CSV,以及Export-CSV。你可以随时在Help后面键入一个命令名称来显示该命令的语法。为了罗列可以和一个指定的服务器角色或一个组件一起工作的所有命令,在Get-Help后面键入角色或组件的名称:
Get-Help –Role *Mailbox*
Get-Help –Component *Recipient*
除了它的广泛特性之外,PowerShell还能够调用程序。例如:你可以调用Word程序,打开一个名为Exchange.doc的Word文档,并且使用下面的命令计算在该文件里的字数:
Invoke-Item c:TempExchange.doc
Type c:tempExchange.doc | Measure-Object –Line –Word
表1列出了一些非常有用的Exchange Server 2007 cmdlets。

表1:一些有用的Exchange Server 2007 cmdlets

Exchange开发人员使用Exchange Management Shell命令提供了广泛的,便于使用的帮助,很好地完成了他们的工作。当你需要提供比默认命令更多的信息时,表2列出了你可以使用Get-Help命令的一些开关。你或许将开始于使用“-Full”开关来了解一个命令的作用,然后在习惯使用Exchange Management Shell之后转到默认的视图中。记住: Exchange Server 2007 Help文件包含所有有关Exchange Management Shell的命令的介绍。

表2:可以使用Get-Help命令的一些开关

利用Shell
Exchange Server 2007将PowerShell视为一个管理工具,因此你也该这么做。在以后的文章里,我将帮助你熟悉PowerShell以及Exchange Management Shell,并且揭示一些此类工具可以使你的工作变得更加简便的方法。