Exchange 2013: Configure Client Access Server via script

I like it quick and easy, and since I often install test environments with new Exchange 2013 servers, I have created a small script that configures the external URLs of the CAS server. The script queries the ShortName of the CAS server, as well as the internal and external name. Then the virtual directories are configured accordingly.

image

clear-host
write-host "Please enter the name of the CAS server (e.g.: EXSRV):"
write-host ""
$CASname = read-host "CAS Shortname"
write-host ""

write-host "Please enter internal access URL (e.g.: outlook.frankysweb.local)"
write-host ""
$OAinternal = read-host "Internal server name"
write-host ""

write-host "Please enter external access URL (e.g.: owa.frankysweb.de)"
write-host ""
$OAexternal = read-host "External host name"
write-host ""

$activesyncurl = "https://" + "$OAexternal" + "/Microsoft-Server-ActiveSync"

$owaexternalurl = "https://" + "$OAexternal" + "/OWA"
$ecpexternalurl = "https://" + "$OAexternal" + "/ECP"
$ewsexternalurl = "https://" + "$OAexternal" + "/EWS/Exchange.asmx"
$oabexternalurl = "https://" + "$OAexternal" + "/OAB"
$autodiscoverurl = "https://" + "$OAexternal" + "/AutoDiscover/AutoDiscover.xml"

$activesyncvdir = "$casname" + "\Microsoft-Server-ActiveSync (Default Web Site)"
$oabvdirinternal = "$casname" + "\OAB (Default Web Site)"

$owavdir = "$casname" + "\OWA (Default Web Site)"
$ecpvdir = "$casname" + "\ECP (Default Web Site)"
$EWSvdir = "$casname" + "\EWS (Default Web Site)"

write-host "The following URLS are configured:"
write-host "------------"
write-host ""
write-host "ActiveSync UTL: $activesyncurl"
write-host "External OWA URL: $owaexternalurl"
write-host "External ECP URL: $ecpexternalurl"
write-host "Exetrne EWS URL: $ewsexternalurl"
write-host "Autodiscover URL: $autodiscoverurl"
write-host ""
write-host "The following services are changed:"
write-host "------------"
write-host ""
write-host "ActiveSync: $activesyncvdir"
write-host "OAB: $oabvdirinternal"
write-host "OWA: $owavdir"
write-host "ECP: $ecpvdir"
write-host "EWS: $EWSvdir"
write-host ""

Get-OutlookAnywhere | Set-OutlookAnywhere -InternalHostname "$OAinternal" -InternalClientAuthenticationMethod Ntlm -InternalClientsRequireSsl $true -ExternalHostname "$OAexternal" -ExternalClientAuthenticationMethod Basic -ExternalClientsRequireSsl $true -IISAuthenticationMethods Negotiate,NTLM,Basic
Set-ActiveSyncVirtualDirectory -Identity "$activesyncvdir" -ExternalUrl "$activesyncurl"
Set-WebServicesVirtualDirectory -Identity $EWSvdir -externalURL $ewsexternalurl
Set-OABVirtualDirectory -Identity "$oabvdirinternal" -ExternalUrl $oabexternalurlget
Set-ClientAccessServer -Identity $casname -AutoDiscoverServiceInternalURI $autodiscoverurl
Set-OwaVirtualDirectory $owavdir -ExternalUrl $owaexternalurl
Set-EcpVirtualDirectory $ecpvdir -ExternalUrl $ecpexternalurl

write-host "...Done!"

Leave a Comment