Here's how it's done-
New-OWAVirtualDirectory -WebsiteName "New Web Site" -OwaVersion "Exchange2007" -ExternalAuthenticationMethods Fba
Set-OWAVirtualDirectory -InternalUrl "https://mail.company.com/owa/" -ClientAuthCleanupLevel "Low" -LogonFormat "UserName" -DefaultDomain “NetBiosDomainName” -Identity "Owa (Default Web Site)"
New-OWAVirtualDirectory -WebsiteName "New Web Site" -OwaVersion "Exchange2003or2000" -VirtualDirectoryType "Exadmin" -ExternalAuthenticationMethods Fba
New-OWAVirtualDirectory -WebsiteName "New Web Site" -OwaVersion "Exchange2003or2000" -VirtualDirectoryType "Mailboxes" -ExternalAuthenticationMethods Fba
New-OWAVirtualDirectory -WebsiteName "New Web Site" -OwaVersion "Exchange2003or2000" -VirtualDirectoryType "Exchweb" -ExternalAuthenticationMethods Fba
New-OWAVirtualDirectory -WebsiteName "New Web Site" -OwaVersion "Exchange2003or2000" -VirtualDirectoryType "PublicFolders" -ExternalAuthenticationMethods Fba
New-WebServicesVirtualDirectory -WebsiteName "New Web Site" -InternalUrl "https://mail.company.com/EWS/Exchange.asmx" -basicauthentication 1 -windowsauthentication 1
New-ActiveSyncVirtualDirectory -WebsiteName "New Web Site" -InternalUrl "https://mail.company.com/Microsoft-Server-ActiveSync" -ExternalAuthenticationMethods Basic -InternalAuthenticationMethods Basic
New-OabVirtualDirectory -WebsiteName "New Web Site" -InternalUrl "https://mail.company.com/OAB"
Set-OabVirtualDirectory -PollInterval "30" -Identity "oab (New Web Site)"
New-UMVirtualDirectory -WebsiteName "New Web Site" -InternalUrl "https://mail.company.com/UnifiedMessaging/Service.asmx"
New-AutodiscoverVirtualDirectory -WebsiteName "New Web Site" -InternalUrl "https://mail.company.com/Autodiscover/Autodiscover.xml" -BasicAuthentication 1 -WindowsAuthentication 1
Set-ClientAccessServer -Identity “MailServer” -AutoDiscoverServiceInternalUri "https://mail.company.com2007/Autodiscover/Autodiscover.xml"
Set-OfflineAddressBook "Default Offline Address Book" -VirtualDirectories "MailServer\OAB (New Web Site)" -Versions Version2,Version3,Version4
Now.. RPC and RPC with Cert. You probably could just re-install RPC, but if you'd prefer not to here is how I recreated them-
Make a backup of the ApplicationHost.config in C:\Windows\System32\inetsrv\config.
Edit the file in Notepad and copy the following from the previus site to the new site. DON'T use this text, use the text from your old site "Default Web Site". Change the name of that section to your new site and paste it in that section of the file.
<site name="<Default Web Site>" id=...> ... <application path="/Rpc" applicationPool="SomeAppPool"> <virtualDirectory path="/" physicalPath="C:\Windows\System32\RpcProxy" /> </application> <application path="/RpcWithCert" applicationPool="SomeAppPool"> <virtualDirectory path="/" physicalPath="C:\Windows\System32\RpcProxy" /> </application> ... </site>
Next, copy the following from the previous site to the new site. DON'T use this text, use the text from your old site "Default Web Site". Change the name of that section to your new site and paste it in that section of the file.
Replace the old site with the new one like this-
<location path="<Default Web Site>/RpcWithCert"> --> <location path="<New Web Site>/RpcWithCert">
<location path="<Default Web Site>/Rpc"> --> <location path="<New Web Site>/Rpc">
<location path="<Default Web Site>/Rpc">
<system.webServer> <directoryBrowse enabled="false" showFlags="Date, Time, Size, Extension" /> <handlers accessPolicy="Execute"> <add name="RPCPROXY" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\system32\RpcProxy\RpcProxy.dll" requireAccess="Execute" /> </handlers> <serverRuntime uploadReadAheadSize="0" /> <defaultDocument enabled="true" /> <modules> <add name="PasswordExpiryModule" /> </modules> <security> <requestFiltering> <requestLimits maxAllowedContentLength="2147483648" /> </requestFiltering> <authentication> <anonymousAuthentication enabled="false" /> <basicAuthentication enabled="false" /> <windowsAuthentication enabled="true" useKernelMode="false" /> </authentication> <access sslFlags="Ssl, Ssl128" /> </security> <httpErrors> <remove statusCode="401" /> <error statusCode="401" path="C:\Windows\system32\RpcProxy\Error401.txt" responseMode="File" /> </httpErrors> </system.webServer> </location>
<location path="<Default Web Site>/RpcWithCert"> <system.webServer> <directoryBrowse enabled="false" showFlags="Date, Time, Size, Extension" /> <handlers accessPolicy="Execute"> <add name="RPCPROXY" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\system32\RpcProxy\RpcProxy.dll" requireAccess="Execute" /> </handlers> <defaultDocument enabled="true" /> <security> <authentication> <anonymousAuthentication enabled="false" /> <basicAuthentication enabled="false" /> <clientCertificateMappingAuthentication enabled="true" /> <digestAuthentication enabled="false" /> <windowsAuthentication enabled="false" useKernelMode="false" /> <iisClientCertificateMappingAuthentication enabled="true" /> </authentication> <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert, Ssl128" /> <requestFiltering> <requestLimits maxAllowedContentLength="2147483648" /> </requestFiltering> </security> <serverRuntime uploadReadAheadSize="0" /> <modules> <add name="PasswordExpiryModule" /> </modules> <httpErrors> <remove statusCode="401" /> <error statusCode="401" path="C:\Windows\system32\RpcProxy\Error401.txt" responseMode="File" /> </httpErrors> </system.webServer> </location>
Run the Command Prompt with elevated permissions and perform run IISreset.