前面的文章中提到,如果要保证Outlook客户端的正常连接,在Exchange 2007/2010客户端访问服务器上,需要正确设置Exchange服务的URL,以便产生正确的AutoDiscover配置信息。
在安装Exchange 2010 CAS服务器角色时,安装程序会询问该服务器在Internet上被访问时使用的FQDN名称,并且会自动使用该名称为CAS上所有的基于IIS的服务配置ExternalURL属性,这些服务包括:Outlook Web App、Exchange Control Panel、ActiveSync、Offline Address Book、Exchange Web Service、AutoDiscover等,并且在启用Outlook Anywhere功能时,会再次询问FQDN名称。因此,在Exchange 2010中,基本上不需要专门关心这些服务的ExternalURL是否正确。这是与Exchange 2007相比很大的改进。
但是在Exchange 2010的使用过程中,依然可能遇到需要对URL进行修改的情况,此时管理员就需要手动通过Exchange Management Console及Exchange Management Shell对配置进行调整。需要依次设置AutoDiscover/OWA/ECP/OAB/WebServices/ActiveSync等。下面这个脚本可以一次性为一台Exchange Server 2010的客户端访问服务器设置这些服务器的InternalURL和ExternalURL值。
这个脚本需要3个参数:
参数名称 | 说明 | 示例 |
CASServer | 客户端访问服务器实际的机器名 | pcoeexchhtcas1 |
ExternalFqdn | 用于外部访问的FQDN,如果设为$None,会将所有服务的ExternalURL置空。 并且,会根据是否设置了该参数来进行OutlookAnywhere功能的启用或禁用 |
cas.pcoe.com |
InternalNameorFqdn | 用于内部访问的FQDN或服务器名。如果未提供该参数,会默认使用CASServer的值。 | cas |
#Begin of script file
#SetCASUrl.ps1
#Author: George Wu
#Usage: .\Set-CASUrl.ps1 -CASServer <SERVERNAME> [-ExternalFqdn <Internet Fqdn>] [-InternalNameorFqdn <NetBIOSNameOrInternalFqdn>]
#Sample:.\Set-CASUrl.ps1 -CASServer pcoeexchhtcas1 -ExternalFqdn cas.pcoe.com -InternalNameorFqdn cas
#Note:
#1.If InternalNameorFqdn is omitted, CASServer will be used
#2.If ExternalFqdn is omitted, external connection will be disabled
Param(
[string] $CASServer,# = $(throw “Usage: .\Set-CASUrl.ps1 -CASServer <SERVERNAME> [-ExternalFqdn <Internet Fqdn>] [-InternalNameorFqdn <NetBIOSNameOrInternalFqdn>]“),
[string] $ExternalFqdn = “$None”,
[string] $InternalNameorFqdn = “$None”
)
if($CASServer -eq “”)
{
$CASServer = Read-Host “Client Access Server Name”
}
if($CASServer -eq “”)
{
exit
}
if($InternalNameorFqdn -eq “”)
{
$InternalNameorFqdn = $CASServer
}
$Msg = “Script is about to change configurations on server ” + $CASServer + ” with following paramenters:”
Write-Host $Msg
$Msg = “CASServer: ” + $CASServer
Write-Host $Msg
$Msg = “ExternalFqdn: ” + $ExternalFqdn
Write-Host $Msg
$Msg = “InternalNameorFqdn: ” + $InternalNameorFqdn
Write-Host $Msg
$Msg = “Configuration of server ” + $CASServer + ” will be changed.”
Write-Warning $Msg -warningaction Inquire
$InternalBase = “https://” + $InternalNameorFqdn + “/”
$ExternalBase = “https://” + $ExternalFqdn + “/”
#
$InternalUrl = $InternalBase + “owa”
if($ExternalFqdn -eq “”)
{
Get-OWAVirtualDirectory -Server $CASServer | Set-OWAVirtualDirectory -ExternalUrl $None -InternalUrl $InternalUrl -WindowsAuthentication $true -FormsAuthentication $false
}
else
{
$ExternalUrl = $ExternalBase + “owa”
Get-OWAVirtualDirectory -Server $CASServer | Set-OWAVirtualDirectory -ExternalUrl $ExternalUrl -InternalUrl $InternalUrl -WindowsAuthentication $false -FormsAuthentication $true
}
Get-OWAVirtualDirectory -Server $CASServer | select name,InternalUrl,ExternalUrl
#
$InternalUrl = $InternalBase + “ecp”
if($ExternalFqdn -eq “”)
{
Get-EcpVirtualDirectory -Server $CASServer | Set-EcpVirtualDirectory -ExternalUrl $None -InternalUrl $InternalUrl -WindowsAuthentication $true -FormsAuthentication $false
}
else
{
$ExternalUrl = $ExternalBase + “ecp”
Get-EcpVirtualDirectory -Server $CASServer | Set-EcpVirtualDirectory -ExternalUrl $ExternalUrl -InternalUrl $InternalUrl
}
Get-EcpVirtualDirectory -Server $CASServer | select name,InternalUrl,ExternalUrl
#
$InternalUrl = $InternalBase + “oab”
if($ExternalFqdn -eq “”)
{
Get-OABVirtualDirectory -Server $CASServer | Set-OABVirtualDirectory -ExternalUrl $None -InternalUrl $InternalUrl
}
else
{
$ExternalUrl = $ExternalBase + “oab”
Get-OABVirtualDirectory -Server $CASServer | Set-OABVirtualDirectory -ExternalUrl $ExternalUrl -InternalUrl $InternalUrl
}
Get-OABVirtualDirectory -Server $CASServer | select name,InternalUrl,ExternalUrl
#
$InternalUrl = $InternalBase + “ews/exchange.asmx”
if($ExternalFqdn -eq “”)
{
Get-WebServicesVirtualDirectory -Server $CASServer | Set-WebServicesVirtualDirectory -ExternalUrl $None -InternalUrl $InternalUrl
}
else
{
$ExternalUrl = $ExternalBase + “ews/exchange.asmx”
Get-WebServicesVirtualDirectory -Server $CASServer | Set-WebServicesVirtualDirectory -ExternalUrl $ExternalUrl -InternalUrl $InternalUrl
}
Get-WebServicesVirtualDirectory -Server $CASServer | select name,InternalUrl,ExternalUrl
#
$InternalUrl = $InternalBase + “Microsoft-Server-ActiveSync”
if($ExternalFqdn -eq “”)
{
Get-ActiveSyncVirtualDirectory -Server $CASServer | Set-ActiveSyncVirtualDirectory -ExternalUrl $ExternalUrl -InternalUrl $InternalUrl
}
else
{
$ExternalUrl = $ExternalBase + “Microsoft-Server-ActiveSync”
Get-ActiveSyncVirtualDirectory -Server $CASServer | Set-ActiveSyncVirtualDirectory -ExternalUrl $ExternalUrl -InternalUrl $InternalUrl
}
Get-ActiveSyncVirtualDirectory -Server $CASServer | select name,InternalUrl,ExternalUrl
#
$InternalUrl = $InternalBase + “autodiscover/autodiscover.xml”
Set-ClientAccessServer $CASServer -AutodiscoverServiceInternalUri $InternalUrl
Get-ClientAccessServer $CASServer | select AutodiscoverServiceInternalUri
#
$ServerStatus = Get-ClientAccessServer $CASServer
if($ExternalFqdn -eq “”)
{
if($ServerStatus.OutlookAnywhereEnabled -eq $true)
{
Disable-OutlookAnywhere -Server $CASServer -Confirm
}
}
else
{
if($ServerStatus.OutlookAnywhereEnabled -eq $false)
{
Enable-OutlookAnywhere -Server $CASServer -ExternalHostname $ExternalFqdn -DefaultAuthenticationMethod ‘Basic’ -SSLOffloading $false -Confirm
}
}
Write-Warning “Attempting to restart IIS service on CAS server remotely… …”
.\psexec.exe \\$CASServer iisreset
#end of script file
其中的psexec.exe 是System Internal公司提供的一个程序,可以远程运行指定的程序。这个脚本里利用该程序到远程客户端访问服务器上进行IISRESET工作。如果不使用这个程序,可以登录到客户端访问服务器上,手动运行IISRESET。
psexec.exe可以从以下位置下载:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
广告时间:
System Internal中有许多有趣的小工具,例如其中的BGInfo工具,在配置多台服务器时十分有用。
有兴趣可以访问以下站点,可能有意想不到的收获:http://technet.microsoft.com/en-us/sysinternals
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |