介绍

Exchange 2007的时候,微软就推出了一套全新的基于Shell的管理工具:PowerShell V1,而且所有的图形化界面也是建立在这种技术之上的.

到了Exchange 2010,PowerShell更紧密的集成在产品中,Exchange 2010使用的是PowerShell V2,很大程度上依赖于其新的远程架构.即使你的服务器在本地或云端,都可以方便的使用这套管理工具.

Exchange 2013,使用的是PowerShell V3,有了更多的命令以及核心功能改变.2013,增加大约150个命令,而因为公共文件夹的变化大约15个命令被移除.

在这一章中,主要介绍下常见的话题,以及一些常见的任务,以便使用这个最新版本编写一些脚本.也会看看一些通用的任务,例如调度脚本,发送电子邮件,生成报告等等

执行一些基本的步骤

要运行这一章中的所有例子,我们需要Exchange Management Shell, Exchange Management console和一个标准的PowerShell V3控制台

可以通过如下步骤启动Exchange Management Shell

  1. 登陆到安装有Exchange管理工具的工作台或服务器

  2. 假如你的计算机没有安装Exchange管理工具,你可以使用PowerShell远程连接,命令如下:

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

-ConnectionUri http://mbx01/PowerShell/ `

-Authentication Kerberos

Import-PSSession $Session

  1. Windows 2008,依次点击开始à所有程序àExchange Server 2013,然后打开Exchange Management Shell,假如使用的是Windows Server 2012,需要进入Metro界面,找到Exchange Management Shell,点击打开

手动配置远程Powershell连接

就像Exchange 2010Exchange 2013在本地或云端使用远程PowerShell是非常可靠的.当你在工作站或服务器上启动Exchange Management Shell,你是使用远程PowerShell会话连接到的Exchange服务器的.

远程PowerShell还允许你在没有安装Exchange管理工具的工作组计算上远程管理你的Exchange服务器.在这一节,我们将使用标准的PowerShell控制台,手动创建一个远程会话连接到我们的Exchange服务器进行管理

我们在工作组计算机上打开PowerShell控制台,依次执行如下操作:

  1. 使用Get-Credential命令创建一个凭证对象,在运行这个命令时,系统会提示使用Windows身份认证对话框,输入有管理Exchange组织权限的用户名和密码,在这里用户名应该是Domain\Username或者UPN格式

$credential = Get-Credential

Exchange 2013 PowerShell手动配置远程PowerShell连接_第1张图片

输入账号和密码,注意格式,点击确定

Exchange 2013 PowerShell手动配置远程PowerShell连接_第2张图片

Exchange 2013 PowerShell手动配置远程PowerShell连接_第3张图片

2.创建一个会话对象并存储在变量中.在下面的例子中,连接到Exchange服务器指定了-ConnectionUri参数.你也可以使用服务器的FQDN名来替换.

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

-ConnectionUri http://mbx01.corp.robin.com/PowerShell/ `

-Credential $credential

wKiom1TPffCQMt8aAACzYia4sgE986.jpg

3.最后,导入这个会话对象

Import-PSSession $session

Exchange 2013 PowerShell手动配置远程PowerShell连接_第4张图片

可以看到,系统的脚本执行策略未修改,下面先修改下执行策略看看

Exchange 2013 PowerShell手动配置远程PowerShell连接_第5张图片

重新导入会话,可以看到导入成功,并运行Exchange命令测试看看效果

Exchange 2013 PowerShell手动配置远程PowerShell连接_第6张图片

4.当你执行了上述命令后,Exchange Management Shell将被导入到当前的PowerSHell会话

远程PowerShell工作原理

每个运行IIS的服务器都支持基于HTTP的远程PowerShell会话.Exchange服务器主机的IIS中也有个PowerShell的虚拟目录.它包含了执行验证检查和确定当前连接用户分配了哪些命令和参数的访问权限,无论你是本地运行Exchange PowerShell Shell,还是通过远程PowerShell连接,都会执行检查和验证,IIS,PowerShell虚拟目录在如下路径

Exchange 2013 PowerShell手动配置远程PowerShell连接_第7张图片

使用远程PowerShell连接到Exchange 2013服务器,这种特色功能在Exchange 2010的时候就已经有了,我们把它称作未隐式远程,它允许我们把远程命令导入到本地会话中.有了这个特性,那么我们的本地计算就可以不用安装Exchange管理工具,而通过这种远征连接的方式去管理我们的Exchange服务器了.

在这里我们需要注意的是:要更改我们的脚本执行策略,不然会出现刚才的错误.

也许你会好奇,为什么Exchange使用远程PowerShell进行管理,即使Exchange管理工具安装了或者本地运行Shell.这里有几个原因,但是最主要的原因是权限问题.Exchange 20102013的权限模型完全转换到最近的版本的功能中,叫做基于角色的管理(RBAC),在这里可以定义我们的管理员拥有哪些访问权限.当你执行一个远程PowerShell连接到我们的Exchange服务器,RBAC模块就会检查当前用户拥有哪些命令和参数的权限.

更过命令参考可以借助我们的帮助系统:get-Help about-remoting

更多PowerShell帮助信息,可以参考如下网站:

http://powershell.com/cs/media/p/4908.aspx