Exchange 2013 PowerShell关键概念之一

 介绍

当你的组织决定升级到Exchange Server 2013,去体验一些新的功能,如集成的电子邮件存档、发现功能以及高可用功能。不管你是否喜欢,你应该意识到PowerShell已经是Exchange服务器管理工具的一部分,而且你需要去学习一些基本脚本知识,从而建立一些脚本管理Exchange Server。这本书就是关于这方面的介绍。在这一章,将介绍一些PowerShell的一些核心概念,这些概念讲方便你学习这本书中提到的一些实例知识。当然,假如你的PowerShell比较熟悉,可以跳过本章或者复习下PowerShell的基本知识

PowerShell采用的基于NET Framework的对象模型,对象的传递是通过管道传递的,而不是纯文本。例如,在Exchange中,我们可以通过对象访问到非常详细的信息,例如:邮箱服务器、邮箱、数据库等。例如,你使用PowerShell对每个邮箱进行管理,邮箱就是一个对象,而这个对象有很多的属性,如:电子邮件地址、数据库位置、发送接受限制等。所以,我们可以建立一些脚本,获取这些信息,并生成报告或帮助我们完成日常维护工作。

执行一些基本的步骤             

      在本章的实例代码中,根据如下步骤启动EMS

1、  登陆安装了Exchange管理工具的工作组或者服务器

2、  假如你的计算机没有安装Exchange管理工具,可以通过远程PowerShell进行连接

$Session = New-PSSession -ConfigurationName Microsoft.Exchange `

-ConnectionUri http://mbx01/PowerShell/ `

-Authentication Kerberos `

Import-PSSession $Session

3、  要打开Exchange Management Shell,依次执,行如下步骤:开始à所有程序àMicrosoft Exchange Server 2013,假如你使用的Windows Server 2012,你可以通过按下Windows 键在Metro界面中找到Exchange Management Shell图标

4、  点击图标即可打开Exchange Management Shell命令行管理工具

注意:当我们启动Exchange Management Shell时,记得以管理员的身份运行,以免一些权限问题引起不必要的权限问题

这这一章中,应该注意到刚才的例子中,使用了重音符号进行换行,这样做的目的就是为了方便阅读

使用帮助系统

Exchange Server 2013中,Exchange Management Shell超过了750条命令,而每一组都有很多的参数。例如:New-Mailbox 接受60多个参数,而Set-Mailbox更是超过160个可用参数,这么多的参数,我们是不可能一一记住的,所以我们需要使用的帮助系统。

那么,怎么使用我们的帮汉族系统呢?

获取一个命令的帮助信息,我们可以在Exchange Management Shell(后面简称EMS控制台)中,输入:Get-Help CmdletName。例如,我们要获取Get-Mailbox命令的帮助信息,我们可以使用如下命令:

Get-Help Get-Mailbox –full

你也可以使用下面的开关参数获取特定的信息:

Get-Help cmdlet

Detailed:详细视图提供了参数的说明和实例,可以使用如下语法:

Get-Help <cmdletname>  -Detailed

Examples:你可以看到多个使用此命令的实例,可以使用如下如法:

Get-Help <cmdletname> -Examples

Full:使用此参数可以查看到帮助文件的完整内容,语法如下:

Get-Help <cmdletname> -Full

一些参数接受简单的字符串作为输入,但也有一些需要一个实际的对象。当我们在创建一个邮箱使用Ner-Mailbox时,我们需要提供一个安全的针对密码参数的字符串对象。可以通过如下命令,来确定这个参数的数类型:

Get-Help New-Mailbox –Parameter Password

技术分享

在输出结果中,可以看到几个关键信息的密码参数,除了看到-Password所需数据类型为<SecureString>,也可以看到这是一个命名参数。命名参数是指在运行New-Mailbox时,是不接受通配符的。你也可以使用此实例中的语法查看其他cmdlet命令支持的参数设置。

你可以运行Get-Help New-Mailbox –Examples 看如何新建一个邮箱,关于新建,修改和删除邮箱我们统一在第三章讲解

更多命令实例

也许,当你不知道一个命令的全名时,我们也可以通过命令进行搜索,例如:

Get-command *Mailbox*

你也可以使用一个-Verb Parameter去找到所有以这个特定动词开头的参数,例如:

Get-command –Verb Set

搜索一个特定的名词,可以指定名词参数,格式如下:

Get-Command –Noun Mailbox

技术分享

其它帮助命令格式:

Get-help about_Core_Commands

Get-Help about_*

 

使用命令和功能获取帮助

首先,我们可能对于命令和功能容易混淆。当启动Exchange Management Shell,一个远程的PowerShell Session被初始化到Exchange服务器和特定的命令,这个被称为功能代理,被导入到Shell Session中。这些代理的功能就是代码块,如Get-Mailbox,对应的编译命令安装在服务器上。

当你从Shell中运行Get-Mailbox功能时,数据是通过PowerShell Session在客户端机器(运行控制台的机器)和服务器之间传递的。Get-Mailbox命令实际是运行在远程的Exchange服务器上,而结果传递到了我们的控制台,这样的好处就是我们可以在远程的计算机上操作相应的命令,特别对于一些云端的服务器来说,更能带来便利。

考虑下下面的命令和输出:

技术分享

同样的,我们可以试试Get-Mailbox命令

技术分享

在这里,我们应该可以看到,Get-Mailbox在上面的命令框中显示的是一个功能。我们在后续能够命令的过程中,对于Exchange这么多的命令,我们要充分利用到帮助系统,多使用Get-Help命令,假如对于一些命令记不住全名,我们也可以通过搜索的方式先找出命令,如使用get-Command ,然后使用帮助系统查找用法

 

了解命令的语法和参数

Windows PowerShell提供了大量内置的命令执行特定的操作。Exchange Management Shell额外增了针对Exchange管理的一个命令集。我们可以使用这些命令对Exchange进行管理,也可以编写一些脚本进行自动化管理。

当执行命令的时候,参数可以用来提供具体的信息,例如邮箱或者服务器,我们可以指定修改哪些属性。在这一节中,我们先来了解下基本的PowerShell语法以及怎么使用这些参数

当我们运行一条PowerShell命令时,我们输入命令,然后跟一些参数,参数前面加一个连字符(-)。下面先来看看一些基本的例子。获取一个指定用户的邮箱信息,使用一下的语法命令:

技术分享

另外,我们也可以使用下面的命令输出相同的结果,因为-Identity参数是位置参数

技术分享

大多的命令支持在一条命令中支持多个参数,例如我们使用如下的命令对邮箱账户进行两处属性修改:

                            Set-Mailbox –Identity robin.pang –MaxSendSize 10mb –MaxReceiveSize 20mb

其它命令:

                            Get-SendConnector

                            Set-SendConnector “To Internet” –Enabled $false

                            Enable-Mailbox robin.pang –Archive

                            Get-Mailbox –Database RDB01 | Remove-Mailbox –WhatIf

技术分享

当你做一些修改,例如:你要移除一个邮箱账户的时候,你会被提示要求确认,例如:

技术分享

当然,我们执行如下操作就不会得到提示确认了,

 Remove-Mailbox robin.pang –Confirm:$false

 设定一些邮箱用户的属性:

  Set-Mailbox –identity robin.pang –office Sales

技术分享

AD中查看用户的属性,可以看到:办公室已经更改为Sales

技术分享

更多命令:

                   Get-Mailbox –OrganizationalUnit ‘corp.robin.com/VIPLAB/集团总部/技术中心

技术分享

我们也可以在命令行中使用变量(这里需要注意的是,第二条命令的双引号)

 $DepartmentOU = ‘行政部

 Get-Mailbox –OrganizationalUnit “corp.robin.com/VIPLAB/集团总部/$DepartmentOU”

技术分享

 

本文出自 “Robin's Home” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。