This post consists of some notes that I took during the installation of Exchange Server 2007 SP1 (Integrated) into a Windows Server 2008 Active Directory Environment (green field, clean installation of everything).  The AD environment was created on RC1 bits of Longhorn with 2008 Forest Functional Level during the DCPromo process.  The lab consists of two servers: 1 DC and 1 Exchange Server. 

Install PowerShell Feature on both DC and Exchange Servers using the Server Manager - "Add Features" tool. 

ForestPrep and DomainPrep are no longer command line options in the Exchange setup process.  To build out the domain, run the following procedures on the domain controller:

SETUP /PrepareLegacyExchangePermissions:WS08.domain.com
SETUP /PrepareSchema
SETUP /PrepareAD /OrganizationName:WS08Mail
SETUP /PrepareDomain:WS08.domain.com

On the Exchange Server, add the web server role for IIS and ensure the following features are enabled:

  1. IIS 6 Management Compatibility
  2. Dynamic Content Compression
  3. Basic Authentication, Windows Authentication, and Digest Authentication 
  4. ASP.NET

Note that NNTP and SMTP are not required (and must not be installed).  Run a customized Exchange setup, configured for Mailbox, Hub Transport, and CAS roles.  Exchange performs a series of readiness checks and should provide ample instructions for installing or configuring any missing compoenents. 

Configure the Client Access Service

Set-OWAVirtualDirectory -Identity "[ServerName]\owa (Default Web Site)" -ChangePasswordEnabled:$false -ExternalUrl "{URL}"  -DefaultDomain [FQDN] -LogonFormat UserName -FormsAuthentication:$true

iisreset /noforce

Set-ExchangeServer -Identity [ServerName] -ProductKey "[Enter Product Key" -ErrorReportingEnabled:$true

Enable-OutlookAnywhere -Server [HostName] -ExternalAuthenticationMethod Basic -ExternalHostname [FQDN] -SSLOffloading:$false

Get-OabVirtualDirectory | where { $_.Server -eq [ServerName] } | Set-OabVirtualDirectory -ExternalUrl http://[FQDN]/OAB -RequireSSL:$true

Get-WebServicesVirtualDirectory | where { $_.Server -eq [ServerName] | Set-WebServicesVirtualDirectory -ExternalUrl https://[FQDN]/EWS/Exchange.asmx -BasicAuthentication:$true

New-ExchangeCertificate -GenerateRequest:$true -DomainName "[FQDN of Host]", "autodiscover.[FQDN]", "[FQDN]" -FriendlyName "[ServerName] cas cert request" -SubjectName "LegacyName" -Path "C`:`\[ServerName].req" -Keysize 1024

Configure the Hub Transport

Set-ExchangeServer -Identity [ServerName] -ProductKey "[Enter Product Key" -ErrorReportingEnabled:$true

Get-ReceiveConnector -Server [ServerName] | Set-ReceiveConnector -PermissionGroups AnonymousUsers,ExchangeUsers,ExchangeServers

$transportServers = Get-ExchangeServer | where { $_.IsHubTransportServer -eq $true }
Set-SendConnector "General Send Connector" -SourceTransportServers $transportServers

New-ExchangeCertificate -GenerateRequest:$true -DomainName "[FQDN of Host]", "autodiscover.[FQDN]", "[FQDN]" -FriendlyName "[ServerName] cas cert request" -SubjectName "LegacyName" -Path "C`:`\[ServerName].req" -Keysize 1024