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”

时间: 2024-12-17 12:12:51

Exchange 2013 PowerShell关键概念之一的相关文章

Exchange 2013 PowerShell管理联系人&通讯组&资源邮箱

管理联系人 创建联系人,使用如下语法: New-MailContact -Alias rjones ` -Name "Rob Jones" ` -ExternalEmailAddress [email protected] ` -OrganizationalUnit sales 已启用邮箱的用户可以使用如下语法: New-MailUser -Name 'John Davis' ` -Alias jdavis ` -UserPrincipalName [email protected]

Exchange 2013 PowerShell新建&修改&删除邮箱

在我们日常使用Exchange Management Shell最多的应该就是邮箱的管理了.在这一节中,将主要介绍下在Exchange中使用语法命令在组织中创建.更新和删除邮箱. 先来看一个示例: 1.  我们可以使用Exchange Management Shell创建一个启用了邮箱功能的AD账户.语法如下: $password = ConvertTo-SecureString -AsPlainText abc.123 -Force New-Mailbox -UserPrincipalName

Exchange 2013 PowerShell 传输文件及并行管道

自从Exchange 2013管理Shell命令是通过远程PowerShell会话执行,导入和导出文件需要一个新的特定参数.大概有上百个Shell命令需要用到,那么这一小节,我们就看看如何使用这些参数通过远程Shell连接进行传输文件的. 传输文件工作方式: 假如你正在当前活动目录站点中创建一个边缘订阅中心到传输服务器.当你在边缘服务器上生成了xml文件后,你可以通过New-EdgeSubscription命令,具体语法如下: [byte[]]$data = Get-Content -Path

Exchange 2013 PowerShell手动配置远程PowerShell连接

介绍 在Exchange 2007的时候,微软就推出了一套全新的基于Shell的管理工具:PowerShell V1,而且所有的图形化界面也是建立在这种技术之上的. 到了Exchange 2010,PowerShell更紧密的集成在产品中,Exchange 2010使用的是PowerShell V2,很大程度上依赖于其新的远程架构.即使你的服务器在本地或云端,都可以方便的使用这套管理工具. 在Exchange 2013中,使用的是PowerShell V3,有了更多的命令以及核心功能改变.在20

Exchange 2013 PowerShell数组和哈希表

示例: 你可以使用一个变量来存放一个数组,通过这个数组对变量分配多个值,在值之间,值需要用分隔号隔开,下面来创建一个示例: $servers = "EX1","EX2","EX3" 创建一个空的哈希表,可以使用如下语法: $hashtable = @{} 创建完哈希表后,我们可以对它进行赋值: $hashtable["server1"] = 1 $hashtable["server2"] = 2 $hash

Exchange 2013 PowerShell管理域或整个林的收件人范围

Exchange管理工具可以配置为使用特定的部分活动目录层次结构使用特定的收件人范围.当你设置收件人范围为活动目录中的一个位置,例如一个域或者一个组织单元,Exchange Management Shell仅仅允许你查看指定范围内的收件人信息.在这一节,我们来看看使用Exchange Management Shell如何设定收件人范围. 如何做到这一点呢? 可以在Exchange Management Shell中使用Set-AdServerSettings命令来设置一个收件人范围.例如,设置当

Exchange 2013 PowerShell创建自定义对象

PowerShell是一个基于对象的Shell,在写一行程序,脚本和函数时,給了我们很大的灵活性.当生成详细的报告时,我们需要从代码中自定义我们的数据输出,或者可以通过管道输送到其它的命令.我们还需要能够控制和定制代码的输出,这样我们可以合并来自多个源的数据到一个单独的对象.在这一节中,我们将学习下基本的构建定制的对象 首先我们要做的时创建一个邮箱对象的集合,将用来作为一组新的自定义对象的数据源: $mailboxes = Get-Mailbox 可以添加自定义的属性用于后续整个管道的对象属性,

Exchange 2013 PowerShell创建自定义脚本

我们可以通过执行单条命令或者结合管道运行多条命令来完成很多任务,但是有时你想创建一个脚本,执行一系列的操作或者加载一个函数库或者预定义变量或别名在Shell中,这一节,我们将学习创建脚本以及运行脚本 怎么做呢? 1.  让我们创建一个基本的脚本,来自动执行一个多步骤的过程.启用文本编辑器,输入如下代码: param( $name, $maxsendsize, $maxreceivesize, $city, $state, $title, $department ) Set-Mailbox -Id

Exchange 2013 PowerShell发送SMTP邮件

作为一个Exchange管理员,我们可能需要使用PowerShell脚本自动化的发送电子邮件.下面一起学习下如何使用PowerShell脚本在你的组织中发送SMTP电子邮件信息. 怎么做到这点呢? PowerShell V2以及后续版本都提供了核心命令可以通过SMTP发送电子邮件信息.使用下面的语法可以发送一份电子邮件信息: Send-MailMessage -To [email protected] ` -From [email protected] ` -Subject "Test E-ma