介绍
在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
登陆到安装有Exchange管理工具的工作台或服务器
假如你的计算机没有安装Exchange管理工具,你可以使用PowerShell远程连接,命令如下:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri http://mbx01/PowerShell/ `
-Authentication Kerberos
Import-PSSession $Session
在Windows 2008中,依次点击”开始”à所有程序àExchange Server 2013,然后打开Exchange Management Shell,假如使用的是Windows Server 2012,需要进入Metro界面,找到Exchange Management Shell,点击打开
手动配置远程Powershell连接
就像Exchange 2010,Exchange 2013在本地或云端使用远程PowerShell是非常可靠的.当你在工作站或服务器上启动Exchange Management Shell时,你是使用远程PowerShell会话连接到的Exchange服务器的.
远程PowerShell还允许你在没有安装Exchange管理工具的工作组计算上远程管理你的Exchange服务器.在这一节,我们将使用标准的PowerShell控制台,手动创建一个远程会话连接到我们的Exchange服务器进行管理
我们在工作组计算机上打开PowerShell控制台,依次执行如下操作:
使用Get-Credential命令创建一个凭证对象,在运行这个命令时,系统会提示使用Windows身份认证对话框,输入有管理Exchange组织权限的用户名和密码,在这里用户名应该是Domain\Username或者UPN格式
$credential = Get-Credential
输入账号和密码,注意格式,点击确定
2.创建一个会话对象并存储在变量中.在下面的例子中,连接到Exchange服务器指定了-ConnectionUri参数.你也可以使用服务器的FQDN名来替换.
$session = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri http://mbx01.corp.robin.com/PowerShell/ `
-Credential $credential
3.最后,导入这个会话对象
Import-PSSession $session
可以看到,系统的脚本执行策略未修改,下面先修改下执行策略看看
重新导入会话,可以看到导入成功,并运行Exchange命令测试看看效果
4.当你执行了上述命令后,Exchange Management Shell将被导入到当前的PowerSHell会话
远程PowerShell工作原理
每个运行IIS的服务器都支持基于HTTP的远程PowerShell会话.Exchange服务器主机的IIS中也有个PowerShell的虚拟目录.它包含了执行验证检查和确定当前连接用户分配了哪些命令和参数的访问权限,无论你是本地运行Exchange PowerShell Shell,还是通过远程PowerShell连接,都会执行检查和验证,在IIS中,PowerShell虚拟目录在如下路径
使用远程PowerShell连接到Exchange 2013服务器,这种特色功能在Exchange 2010的时候就已经有了,我们把它称作未隐式远程,它允许我们把远程命令导入到本地会话中.有了这个特性,那么我们的本地计算就可以不用安装Exchange管理工具,而通过这种远征连接的方式去管理我们的Exchange服务器了.
在这里我们需要注意的是:要更改我们的脚本执行策略,不然会出现刚才的错误.
也许你会好奇,为什么Exchange使用远程PowerShell进行管理,即使Exchange管理工具安装了或者本地运行Shell.这里有几个原因,但是最主要的原因是权限问题.Exchange 2010和2013的权限模型完全转换到最近的版本的功能中,叫做基于角色的管理(RBAC),在这里可以定义我们的管理员拥有哪些访问权限.当你执行一个远程PowerShell连接到我们的Exchange服务器,RBAC模块就会检查当前用户拥有哪些命令和参数的权限.
更过命令参考可以借助我们的帮助系统:get-Help about-remoting
更多PowerShell帮助信息,可以参考如下网站:
http://powershell.com/cs/media/p/4908.aspx