设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2064|回复: 1
打印 上一主题 下一主题

Exchange 命令行管理程序入门

[复制链接]
跳转到指定楼层
1#
发表于 2008-10-15 10:50:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  Microsoft Exchange Server 2007 中的一项新增功能是 Exchange 命令行管理程序,它是建立在 Microsoft Windows PowerShell 技术基础上的功能强大的管理界面。您可以使用 Exchange 命令行管理程序执行 Exchange 管理控制台中可以执行的每个任务,甚至可以执行 Exchange 管理控制台中不能执行的任务。另外,在 Exchange 管理控制台中执行任务时,Exchange 命令行管理程序可使用相同的命令,并调用该命令来处理请求。
  图 1 显示了 Exchange 命令行管理程序操作示例。
  图 1 Exchange 命令行管理程序
  
  第一次看到命令行程序时,那些不熟悉命令行的用户可能会产生畏惧情绪。现在就让我们来了解一下通过这个功能强大的工具可以执行的任务,以及开始使用该工具是多么简单:
  安全而轻松地编写脚本 Exchange 管理控制台不是简单地使用 Exchange 命令行管理程序来执行操作。向导会向您显示它们正在执行的 Exchange 命令行管理程序命令。您可以复制向导创建的命令,并将其直接粘贴到命令行或脚本中。根据个人需要修改这些参数后,使用 WhatIf 参数测试相应的脚本或命令,这样可以在对环境进行更改之前查看其结果。
  修改参数?WhatIf?听起来真复杂。不用担心!参考一下 Microsoft Exchange Server 2007 文档中的“Using the Exchange Management Shell”部分。您很快就可以掌握该工具。
  清楚而简单 我们始终使用“动词-名词”这种结构来清楚地讲述管理的功能或组件以及执行的操作。无需再猜测 cmdlet 的行为。看到 Move-Mailbox cmdlet 时,您就可以确切地了解它的用途。(对,没错。就是用来移动邮箱!)
  在最大程度上利用资源和时间,减少失败 Exchange 命令行管理程序提供了可靠而灵活的脚本编写平台,以便与当前的脚本编辑解决方案进行集成,同时还可以与各种数据源(如 COM 和 Windows Management Instrumentation (WMI))进行本地通信。它可帮助您合理地利用资源和时间,创建有效的解决方案,而不是创建支持解决方案的框架。
  只需按照我的演示进行操作:无需其他文本分析! Exchange 命令行管理程序 cmdlet 建立在 Microsoft .NET 基础之上,可以接受并返回结构化数据,而不是纯文本。因此,无需进行繁杂的文本分析即可轻松地来回传递数据。甚至只需一个命令行,就可以将 CSV 和 XML 文件转换为可以处理和使用的对象。
  ●几个基本概念
  在开始使用 Exchange 命令行管理程序之前,了解几个基本概念很有帮助。
  作为基础的 Windows PowerShell 技术 Windows PowerShell 是一个新推出的功能强大而又异常灵活的命令行界面,建立在 .NET Framework 的基础之上。它结合了几个命令行程序的优点,另外还添加了几项强大的新功能。PowerShell 是为了承载其他应用程序而设计的,就像 Microsoft 管理控制台 (MMC) 承载计算机上安装的应用程序提供的各种管理单元一样。Exchange 命令行管理程序是要发布的第一个 Microsoft PowerShell 管理单元。
  cmdlet cmdlet,全称为“command-let”,是 Exchange 命令行管理程序中最小的功能单元。cmdlet 与其他命令行程序中的内置命令(例如 cmd.exe 中的 Dir 命令)相似。与这些熟悉的命令一样,cmdlet 可以直接从 Exchange 命令行管理程序的命令行中调用,并在命令行程序的环境中运行,而不是作为单独的进程运行。与其他命令行程序的不同之处在于:在 Exchange 命令行管理程序中,cmdlet 具有描述性的“动词-名词”结构的名称。动词描述 cmdlet 执行的操作,名词描述操作作用于的组件或功能。例如,使用 New-SystemMessage cmdlet 命令可以在安装了集线器传输服务器角色的计算机上创建新的发送状态通知 (DSN) 或配额邮件。
  有关特定 cmdlet 的详细信息,请参阅 Exchange 2007 帮助的技术参考一节中的“Exchange Management Shell”部分。
  Identity 参数和位置参数 参数是向 cmdlet 提供信息的元素,用于标识要作用于的对象及其属性,或控制 cmdlet 执行任务的方式。Identity 参数可以用于大多数 Exchange cmdlet。通过 Identity 参数,您可以访问引用 Exchange 2007 中特定对象的唯一标识符。这样,您就可以使用最有意义的唯一值对特定的 Exchange 对象执行操作。
  Identity 参数是其他参数的值的集合。这些值可以保证在对象集中的唯一性。您可以指定其他参数(如 Name 和 DistinguishedName)的值,或者由系统生成值,如 GUID。使用的其他参数(如果有)以及如何设置这些参数取决于您引用的对象。
  Identity 参数也被视为一种位置参数。位置参数是可以不通过指定参数名称而指定参数值的参数。如果 Parameter Position 属性为整数,则参数为位置参数。此整数指示在命令行上的位置,cmdlet 可在该位置找到参数的值。因为 Identity 是一个位于 1 位置(起始位置)的参数,所以在此位置输入的没有参数名称的任何值都被视为 Identity 参数的值。
  这是什么意思呢?也就是说,它可以减少键入命令时的按键次数。例如,Get-Mailbox “Kim Akers” 与 Get-Mailbox –Identity "Kim Akers" 执行相同的操作。
  管道传输 在 Exchange 命令行管理程序中,管道传输是指一个 cmdlet 在执行操作时使用另一个 cmdlet 的输出的行为。您可以使用管道传输将两个或更多 cmdlet 串联在一起。这样,您就可以将多个较小组件转换成功能更强大的命令。例如,可以使用一个 cmdlet 收集数据,然后将数据传递给第二个 cmdlet 以筛选数据得到一个子集,然后,将该数据传递给第三个 cmdlet 以只处理该子集。如以下示例所示,它将 Sales 数据库中的所有邮箱移动到同一服务器上的 Research 数据库中:
  复制代码
  Get-MailboxDatabase Sales | Get-Mailbox | Move-Mailbox -TargetDatabase Research
  让我们来了解一下如何使用管道符号“|”。首先,使用 Get-MailboxDatabase cmdlet 检索 Sales 邮箱数据库,生成的对象会通过管道传递到 Get-Mailbox cmdlet。然后,Get-Mailbox cmdlet 会检索 Sales 数据库中的所有邮箱。生成的邮箱集然后会通过管道传输到 Move-Mailbox cmdlet,该命令将邮箱移动到 Research 邮箱数据库。本文上文中的图 1 显示了该命令。
  同一名词 cmdlet 集中的所有动词都可以使用其他命令通过管道传递来的信息。一些名词 cmdlet 集还允许通过管道向另一个名词 cmdlet 集传递数据。“名词 cmdlet 集?”它是什么意思?管理特定功能的所有 Exchange 命令行管理程序 cmdlet 都共享同一个名词,如 Mailbox 或 AddressList。要获取按名词整理的所有 cmdlet 列表,请参阅 Cmdlet List。
  ●启动 Exchange 命令行管理程序
  Windows PowerShell 管理单元是用于管理某个应用程序或主要组件的 cmdlet 集合。如果不加载特定应用程序的管理单元,就不能使用相关联的 cmdlet。
  这对您来说意味着什么呢?如果启动 PowerShell 而不加载 Exchange 命令行管理程序管理单元,并且尝试执行 Exchange 命令行管理程序 cmdlet(如 Get-Mailbox),则会出现错误。为什么?因为 Get-Mailbox cmdlet 不存在于核心 PowerShell cmdlet 集中。
  所以,首先应该做的事为:打开 Exchange 命令行管理程序。只需依次单击“开始”、“程序”、“Microsoft Exchange Server 2007”和“Exchange 命令行管理程序即可。
  有关入门的更多背景信息,请参阅 New Administration Functionality in the Exchange Management Shell。
  ●根据需要获取相关帮助
  对于 Exchange 2007,Microsoft Exchange 用户培训工作组已经编写了一套全面的文档,位于 Exchange 命令行管理程序和 Exchange Server 2007 帮助文件中,该文件可以从 Exchange 管理控制台和通过联机方式获得。
  在命令行程序中,您会发现在学习导航 Exchange 命令行管理程序时,Get-Help cmdlet 是宝贵的资源。请务必参考 Exchange Server 2007 帮助文件中的“操作”部分。它包含很多过程主题,这些主题将帮助您使用 Exchange 命令行管理程序和 Exchange 管理控制台执行大多数管理任务。您可以从 Exchange 2007 的“开始”菜单中访问 Exchange Server 2007 帮助文件,或者联机访问 Microsoft Exchange Server 2007。
  命令行程序中的帮助
  在命令行程序中,可以使用 Get-Help cmdlet 以多种形式访问特定于 cmdlet 的帮助。键入 Get-Help 即可显示常规的帮助信息。如果应用参数,则 Get-Help cmdlet 的功能更强大。
  要获取特定 cmdlet 的帮助,请键入 Get-Help,然后键入您希望了解其相关信息的 cmdlet,如 Get-Help Get-SystemMessage。默认情况下,命令行程序会显示对 cmdlet 及其语法的说明。它会隐藏可能并非所有管理员都使用的其他部分。
  您可以使用 Detailed、Full 和 Example 参数控制显示哪些信息。只需将其添加到命令的末尾即可。例如,Get-Help –Full 返回可用于某个 cmdlet 的所有帮助部分。亲自试验一下这些命令,了解针对您选择的 cmdlet 会显示哪些信息。
  如果要检索关于特定参数或某个 cmdlet 的参数的信息,可以将 Parameters 参数与 Get-Help cmdlet 配合使用。例如,如果要查看 Set-Mailbox cmdlet 的包含单词“quota”的所有参数及其说明,请键入 Get-Help Set-Mailbox –Parameter *quota*。
  或者您可能要查看管理特定服务器角色或组件功能或者跨某特定功能作用域来影响对象的 cmdlet 列表。此时,使用 Get-Help cmdlet 和以下三个参数:Role、Component 和 Functionality。将 Get-Help cmdlet 与这些参数结合使用时,请牢记在使用这些参数指定的值两边加上通配符 (*)。下列示例说明了如何用每个参数调用 Get-Help:
  Get-Help -Role *Mailbox*
  Get-Help -Component *Recipient*
  Get-Help -Functionality *Server*
  Exchange Server 2007 帮助文件中的“Getting Help”主题列出了可以使用的所有角色、组件和功能值。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2008-10-15 10:51:06 | 只看该作者
  ●设置命令输出的格式
  默认情况下,当屏幕上显示命令输出时,Exchange 命令行管理程序只显示每个对象的可用属性的一部分。为什么?因为每个对象可能包含很多属性,您要根据需要优化命令输出。通过将命令输出用管道传递到以下三个格式设置 cmdlet,您可以轻松访问和查看所有这些属性:Format-List、Format-Table 和 Format-Wide。
  Format-List 和 Format-Table 是最常用的 cmdlet,我们来更详细地了解一下它们。
  Format-List cmdlet 接受来自管道的输入并将每个对象的所有指定属性以垂直列表格式输出。通过使用 Property 参数(该参数是一个位置参数),您可以指定要显示哪些属性。如果调用 Format-List cmdlet 而未指定任何参数,则将输出所有属性。Format-List cmdlet 会自动换行,而不是截断行。Format-List cmdlet 的最佳用途之一就是覆盖某个 cmdlet 的默认输出,以便检索其他信息或更受关注的信息,如 Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size* 示例中所示。图 2 显示此命令的输出。
  可以使用 Format-Table cmdlet 以表格格式显示项目,其中包含标签标题和属性数据列。默认情况下,许多 cmdlet(如 Get-Mailbox 和 Get-JournalRule cmdlet)都使用表格格式输出。Format-Table cmdlet 的参数中包括 Properties 和 GroupBy 参数。这些参数的作用与其在 Format-List cmdlet 中的作用完全相同。要完全显示较长的属性信息行,而不是在行的末尾截断,请将 Wrap 参数和 Format-Table cmdlet 结合使用,如以下示例所示:Get-Mailbox –Database Research | Format-Table Name, ProhibitSendQuota, Database –Wrap。图 3 显示了此命令的输出。
  图 3 Format-Table 示例输出
  
  在 Format-List 和 Format-Table cmdlet 中,您还可以指定使用通配符“*”代替部分属性名称,如图 2 中所示。如果包含通配符,则可以匹配多个属性,而不必单独键入每个属性名称。例如,Get-Mailbox | Format-List -Property Email* 返回以 Email 开头的所有属性。使用 Exchange 2007 可以减少键入的内容并节省时间!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-9 05:23 , Processed in 0.095986 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表