Share via


Azure 中的 Exchange 開發/測試環境

本主題會逐步引導您在 Microsoft Azure 中建立 Exchange 2016 或 Exchange 2019 開發/測試部署。 以下是所產生的組態。

Azure 基礎結構服務中已完成的 Exchange 開發/測試環境。

此組態是由單一 Exchange 伺服器和 Azure 虛擬網路子網中的 Windows Server Active Directory (AD) 網域控制站所組成。 這提供基礎和常見的起點,您可以從中示範 Exchange 並開發Exchange Server應用程式。 此設定僅適用于 Exchange 伺服器上的內部電子郵件和應用程式測試。 未設定外部電子郵件流程。

設定此開發/測試環境有三個主要階段︰

  1. 設定虛擬網路和網域控制站 (adVM)。
  2. 新增 exchange server (exVM) 。
  3. 設定 Exchange。

如果您還沒有 Azure 訂用帳戶,您可以註冊 Azure 免費試用版。 如果您有 MSDN 或 Visual Studio 訂用帳戶,請參閱 Visual Studio 訂閱者的每月 Azure 點數

注意事項

因為 Exchange 會在 Windows Server AD 中變更架構,所以此設定無法使用 Microsoft Entra Domain Services。

階段 1:部署虛擬網路和網域控制站

您可以使用具有Azure PowerShell的網域控制站來建立新的 Azure 虛擬網路。 您可以從Windows PowerShell命令提示字元或在 PowerShell 整合式腳本環境 (ISE) 中執行下列 PowerShell 命令。 如果您尚未安裝 Azure PowerShell,請參閱開始使用 Azure PowerShell Cmdlet

注意事項

這些命令適用于 Azure PowerShell 1.0.0 和更新版本。

  1. 登入您的 Azure 帳戶。

    Connect-AzAccount
    
  2. 使用下列命令取得訂用帳戶名稱。

    Get-AZSubscription | Sort-Object Name | Select-Object Name
    
  3. 使用下列命令設定您的 Azure 訂用帳戶。 以正確的名稱取代引號內的所有專案,包括 < 和 > 字元,以設定$subscrName變數。

    $subscrName="<subscription name>"
    
    Select-AzSubscription -SubscriptionName $subscrName
    
  4. 建立新的資源群組。 若要判斷資源群組名稱是否是唯一的,可使用此命令來列出現有的資源群組。

    Get-AZResourceGroup | Sort-Object ResourceGroupName | Select-Object ResourceGroupName
    

    使用這些命令建立新的資源群組。 以正確的名稱取代引號內的所有項目 (包括 < 和 > 字元),藉此設定變數。

    $rgName="<resource group name>"
    
    $locName="<location name, such as West US>"
    
    New-AZResourceGroup -Name $rgName -Location $locName
    
  5. Resource Manager 架構的虛擬機器會需要 Resource Manager 架構的儲存體帳戶。 您必須為儲存體帳戶挑選 只包含小寫字母和數位的全域唯一名稱。 您可以使用此命令來列出現有的儲存體帳戶。

    Get-AZStorageAccount | Sort-Object StorageAccountName | Select-Object StorageAccountName
    

    使用此命令來測試建議的儲存體帳戶名稱是否是唯一的。

    Get-AZStorageAccountNameAvailability "<proposed name>"
    

    使用這些命令為新的測試環境建立新的儲存體帳戶。

    $saName = "<storage account name>"
    
    New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
    
  6. 建立將裝載 EXSrvrSubnet 子網的 EXSrvrVnet Azure 虛擬網路,並使用網路安全性群組來保護它。

    $exSubnet=New-AZVirtualNetworkSubnetConfig -Name EXSrvrSubnet -AddressPrefix 10.0.0.0/24
    
    New-AZVirtualNetwork -Name EXSrvrVnet -ResourceGroupName $rgName -Location $locName -AddressPrefix 10.0.0.0/16 -Subnet $exSubnet -DNSServer 10.0.0.4
    
    $rule1 = New-AZNetworkSecurityRuleConfig -Name "RDPTraffic" -Description "Allow RDP to all VMs on the subnet" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389
    
    $rule2 = New-AZNetworkSecurityRuleConfig -Name "ExchangeSecureWebTraffic" -Description "Allow HTTPS to the Exchange server" -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix "10.0.0.5/32" -DestinationPortRange 443
    
    New-AZNetworkSecurityGroup -Name EXSrvrSubnet -ResourceGroupName $rgName -Location $locName -SecurityRules $rule1, $rule2
    
    $vnet=Get-AZVirtualNetwork -ResourceGroupName $rgName -Name EXSrvrVnet
    
    $nsg=Get-AZNetworkSecurityGroup -Name EXSrvrSubnet -ResourceGroupName $rgName
    
    Set-AZVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name EXSrvrSubnet -AddressPrefix "10.0.0.0/24" -NetworkSecurityGroup $nsg
    
    $vnet | Set-AzVirtualNetwork
    
  7. 在 Azure 中建立 adVM 虛擬機器。 adVM 是 corp.contoso.com Windows Server AD網域的網域控制站,以及 EXSrvrVnet 虛擬網路虛擬機器的 DNS 伺服器。

    首先,填寫資源群組、Azure 位置和儲存體帳戶名稱的名稱,然後在本機電腦上的Azure PowerShell命令提示字元執行這些命令,以建立 adVM 的 Azure 虛擬機器。

    # Create an availability set for domain controller virtual machines
    New-AZAvailabilitySet -ResourceGroupName $rgName -Name dcAvailabilitySet -Location $locName -Sku Aligned -PlatformUpdateDomainCount 5 -PlatformFaultDomainCount 2
    
    # Create the domain controller virtual machine
    $vnet = Get-AZVirtualNetwork -Name EXSrvrVnet -ResourceGroupName $rgName
    
    $pip = New-AZPublicIpAddress -Name adVM-NIC -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic
    
    $nic = New-AZNetworkInterface -Name adVM-NIC -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress 10.0.0.4
    
    $avSet=Get-AZAvailabilitySet -Name dcAvailabilitySet -ResourceGroupName $rgName
    
    $vm=New-AZVMConfig -VMName adVM -VMSize Standard_D1_v2 -AvailabilitySetId $avSet.Id
    
    $vm=Set-AZVMOSDisk -VM $vm -Name adVM-OS -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS"
    
    $diskConfig=New-AZDiskConfig -AccountType "Standard_LRS" -Location $locName -CreateOption Empty -DiskSizeGB 20
    
    $dataDisk1=New-AZDisk -DiskName adVM-DataDisk1 -Disk $diskConfig -ResourceGroupName $rgName
    
    $vm=Add-AZVMDataDisk -VM $vm -Name adVM-DataDisk1 -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
    
    $cred=Get-Credential -Message "Type the name and password of the local administrator account for adVM."
    
    $vm=Set-AZVMOperatingSystem -VM $vm -Windows -ComputerName adVM -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
    
    $vm=Set-AZVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest"
    
    $vm=Add-AZVMNetworkInterface -VM $vm -Id $nic.Id
    
    New-AZVM -ResourceGroupName $rgName -Location $locName -VM $vm
    

    系統會提示您輸入使用者名稱和密碼。 本文會將此使用者名稱稱為ADMIN_NAME。 使用強式密碼,並將兩者記錄於安全的位置。

    注意:您指定的密碼不能是 「pass@word1」。 它必須是 8-123 個字元長,而且必須至少滿足下列 3 個密碼複雜性需求:

    • 包含大寫字母
    • 包含小寫字母
    • 包含數字
    • 包含特殊字元

Azure 可能需要數分鐘的時間來建置虛擬機器。

使用本機系統管理員帳號憑證連線到網域控制站虛擬機器

  1. Azure 入口網站中,按一下資源組名 >> adVM Connect 的 [資源群組 <> ]。 >

  2. 執行所下載的 adVM.rdp 檔案,然後按一下 [ 連線]。

  3. 在 [ Windows 安全性] 中,按一下 [ 使用另一個帳戶]。 在 [使用者名稱]中,輸入 **adVM** < ADMIN_NAME > 。

  4. [密碼] 中,輸入 ADMIN_NAME 帳戶的密碼,然後按一下 [確定]

  5. 出現提示時,按一下 [是]

  6. 在 adVM 的系統管理員層級Windows PowerShell命令提示字元使用下列命令,將額外的資料磁片新增為具有磁碟機號 F: 的新磁片區。

    $disk=Get-Disk | where {$_.PartitionStyle -eq "RAW"}
    
    $diskNumber=$disk.Number
    
    Initialize-Disk -Number $diskNumber
    
    New-Partition -DiskNumber $diskNumber -UseMaximumSize -AssignDriveLetter
    
    Format-Volume -DriveLetter F
    
  7. 將 adVM 設定為 corp.contoso.com 網域的網域控制站和 DNS 伺服器。 在 adVM 上的系統管理員層級 Windows PowerShell 命令提示字元執行下列命令︰

    Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
    
    Install-ADDSForest -DomainName corp.contoso.com -DatabasePath "F:\NTDS" -SysvolPath "F:\SYSVOL" -LogPath "F:\Logs"
    

請注意,這些命令可能需要數分鐘才能完成。

adVM 重新啟動後,重新連線到 adVM 虛擬機器。

使用網域認證連線到網域控制站虛擬機器

  1. Azure 入口網站中,按一下 [資源群組 >< ] 作為新資源群組 >> adVM > Connect的名稱。

  2. 執行所下載的 adVM.rdp 檔案,然後按一下 [ 連線]。

  3. 在 [ Windows 安全性] 中,按一下 [ 使用另一個帳戶]。 在 [使用者名稱]中,輸入 **CORP** < ADMIN_NAME > 。

  4. [密碼] 中,輸入 ADMIN_NAME 帳戶的密碼,然後按一下 [確定]

  5. 出現提示時,按一下 [是]

  6. 從桌面開啟系統管理員層級Windows PowerShell命令提示字元,然後執行下列命令:

    Add-WindowsFeature RSAT-ADDS-Tools
    

以下是階段 1 的結果。

Azure 基礎結構服務中 Exchange 開發/測試環境的階段 1。

階段 2:建立 Exchange 虛擬機器

在此階段中,您會在 EXSrvrVNet 虛擬網路中建立 Exchange 虛擬機器,並使其成為 CORP 網域的成員。

若要使用 Azure PowerShell 建立 Exchange 虛擬機器,請先使用您的 Azure 帳戶從Windows PowerShell命令提示字元登入 Azure, (視需要) 。

Connect-AzAccount

您必須判斷 exVM 虛擬機器的全域唯一 DNS 名稱。 您必須挑選 只包含小寫字母和數位的全域唯一 DNS 名稱。 您可以使用下列 PowerShell 命令來執行此動作:

$vmDNSName="<DNS name to test>"

$rgName="<resource group name>"

$locName=(Get-AZResourceGroup -Name $rgName).Location

Test-AZDnsAvailability -DomainQualifiedName $vmDNSName -Location $locName

如果您看到 「True」,則建議的名稱是全域唯一的。

接下來,在 PowerShell 提示字元中填入變數值並執行產生的區塊。

# Set up key variables
$subscrName="<name of your Azure subscription>"

$vmDNSName="<unique, public DNS name for the Exchange server>"

# Set the Azure subscription
Select-AzSubscription -SubscriptionName $subscrName

# Get the Azure location and storage account names
$locName=(Get-AZResourceGroup -Name $rgName).Location

$saName=(Get-AZStorageaccount | Where {$_.ResourceGroupName -eq $rgName}).StorageAccountName

# Create an availability set for Exchange virtual machines
New-AZAvailabilitySet -ResourceGroupName $rgName -Name exAvailabilitySet -Location $locName -Sku Aligned  -PlatformUpdateDomainCount 5 -PlatformFaultDomainCount 2

# Specify the virtual machine name and size
$vmName="exVM"

$vmSize="standard_d8s_v3"

$vnet=Get-AZVirtualNetwork -Name "EXSrvrVnet" -ResourceGroupName $rgName

$avSet=Get-AZAvailabilitySet -Name exAvailabilitySet -ResourceGroupName $rgName

$vm=New-AZVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id

# Create the NIC for the virtual machine
$nicName=$vmName + "-NIC"

$pipName=$vmName + "-PublicIP"

$pip=New-AZPublicIpAddress -Name $pipName -ResourceGroupName $rgName -DomainNameLabel $vmDNSName -Location $locName -AllocationMethod Dynamic

$nic=New-AZNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress "10.0.0.5"

# Create and configure the virtual machine
$cred=Get-Credential -Message "Type the name and password of the local administrator account for exVM."

$vm=Set-AZVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType "Standard_LRS"

$vm=Set-AZVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate

$vm=Set-AZVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2019-Datacenter -Version "latest"

$vm=Add-AZVMNetworkInterface -VM $vm -Id $nic.Id

New-AZVM -ResourceGroupName $rgName -Location $locName -VM $vm

注意事項

此命令區塊會使用階段 1 中建立的標準儲存體帳戶,以降低此開發/測試環境的成本。 針對生產 Exchange 伺服器,您必須使用進階儲存體帳戶。

從Azure 入口網站,使用本機系統管理員帳戶的認證連線到 exVM 虛擬機器。

接下來,在Windows PowerShell提示字元中使用這些命令將 exVM 加入 Windows AD 網域。

Add-Computer -DomainName "corp.contoso.com"
Restart-Computer

請注意,您必須在輸入 Add-Computer 命令之後,提供網域帳戶認證。 使用 CORP\ < ADMIN_NAME > 帳戶和密碼。

以下是階段 2 的結果。

Azure 基礎結構服務中已完成的 Exchange 開發/測試環境。

階段 3:設定 Exchange

在此階段中,您會在 exVM 上設定 Exchange,並測試兩個信箱之間的郵件傳遞。

準備Windows Server AD

  1. 在本機電腦的Windows PowerShell命令提示字元中,執行下列命令:

    Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
    
  2. 記下或複製命令顯示的完整 DNS 名稱。 這是 exVM 虛擬機器的網際網路 DNS 名稱。 You will need this value later.

  3. 如有需要,請使用 CORP\ <> ADMIN_NAME 帳戶和密碼,透過Azure 入口網站連線到 adVM 虛擬機器。

  4. 在 Windows PowerShell 命令提示字元下,執行下列命令:

    Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
    
  5. 使用 adVM 關閉遠端桌面會話。

安裝 Exchange

  1. 使用 CORP\ <> ADMIN_NAME 帳戶和密碼,透過Azure 入口網站連線至 exVM 虛擬機器。

  2. 從 exVM 開啟系統管理員層級Windows PowerShell命令提示字元,然後執行下列命令。

    Install-WindowsFeature NET-Framework-45-Core, NET-Framework-45-ASPNET, NET-WCF-HTTP-Activation45, NET-WCF-Pipe-Activation45, NET-WCF-TCP-Activation45, NET-WCF-TCP-PortSharing45, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS-Tools
    
    Restart-Computer
    
  3. 使用 CORP\ <> ADMIN_NAME 帳戶和密碼,透過Azure 入口網站連線至 exVM 虛擬機器。

  4. 從 [伺服器管理員],按一下 [本機伺服器]。 在 exVM 的 [屬性] 中,針對[IE 增強式安全性設定] 按一下 [啟]。 在 Internet Explorer 的 [增強式安全性設定] 中,針對 [系統管理員] 和 [使用者] 按一下 [ 關閉 ],然後按一下 [ 確定]

  5. 從 [開始] 畫面中,按一下 [Internet Explorer],然後從 https://www.microsoft.com/download/details.aspx?id=34992 下載 Unified Communications Managed API 4.0 Runtime。 出現提示時,按一下 [執行]

  6. 當系統提示您輸入 Microsoft Unified Communications Managed API 4.0 的執行時間安裝程式時,請按 [ 下一步]

  7. 按一下 [我已閱讀並接受授權條款],然後按一下 [ 安裝]。 在 [ 安裝完成] 頁面上,按一下 [ 完成]

  8. 從 Internet Explorer 下載最新版的 Exchange。 如需詳細資訊,請參閱 Exchange Server 的匯報

  9. 按一下 [儲存 ] 將 ISO 檔案儲存在 [下載] 資料夾中。

  10. 按一下 [開啟資料夾],以滑鼠右鍵按一下 Exchange ISO 檔案,然後按一下 [ 掛接]

  11. 從 exVM 上的系統管理員層級Windows PowerShell命令提示字元,執行下列命令:

注意事項

  • 先前 /IAcceptExchangeServerLicenseTerms 切換自 2021 年 9 月累積更新 (CU) 起將無法執行。 您現在必須使用 /IAcceptExchangeServerLicenseTerms_DiagnosticDataON/IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF 進行自動和指令碼安裝。

  • 下列範例使用 /IAcceptExchangeServerLicenseTerms_DiagnosticDataON 切換。 您可將開關變更為 /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF

e:

.\setup.exe /mode:Install /role:Mailbox /OrganizationName:Contoso /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
Restart-Computer

等候 Exchange 安裝程式完成,這可能需要一些時間,並重新啟動 exVM。

將兩個信箱新增至 Exchange 伺服器

  1. 使用 CORP\ <> ADMIN_NAME 帳戶和密碼,透過Azure 入口網站連線至 exVM 虛擬機器。

  2. 從 [開始] 畫面輸入 Exchange,然後按一下 [Exchange 管理命令介面]

  3. 將下列命令複製到記事本,插入 $dnsName 變數之 exVM 虛擬機器的網際網路 DNS 名稱,然後將產生的命令複製並貼到 Exchange 管理命令介面中。

    $dnsName="<Internet DNS name of the exVM virtual machine>"
    
    $user1Name="chris@" + $dnsName
    
    $user2Name="janet@" + $dnsName
    
    $db=Get-MailboxDatabase
    
    $dbName=$db.Name
    
    $password = Read-Host "Enter password" -AsSecureString
    
  4. 記錄在安全的地方指定的密碼。 接下來,執行這些命令以建立兩個信箱。

    New-Mailbox -UserPrincipalName $user1Name -Alias chris -Database $dbName -Name ChrisAshton -OrganizationalUnit Users -Password $password -FirstName Chris -LastName Ashton -DisplayName "Chris Ashton"
    
    New-Mailbox -UserPrincipalName $user2Name -Alias janet -Database $dbName -Name JanetSchorr -OrganizationalUnit Users -Password $password -FirstName Janet -LastName Schorr -DisplayName "Janet Schorr"
    

測試信箱之間的電子郵件傳遞

  1. 從本機電腦上的瀏覽器,存取網站HTTPs://< exVM 虛擬機器 >/owa的Internet DNS 名稱。 出現網站安全性憑證錯誤頁面的提示時,按一下 [ 繼續前往此網站]。 在 Outlook 登入頁面上,使用 corp\chris 帳戶名稱搭配其密碼。

  2. 當系統提示您指定語言和時區時,請選取每個語言和時區的適當值,然後按一下 [ 儲存]

  3. 從 Chris Ashton 的收件匣中,按一下 [ 新增]。 在 [至] 中,輸入 度, 然後按一下 [搜尋目錄]。 針對 [主旨],輸入 測試訊息,然後按一下 [ 傳送]

  4. 按一下 [郵件] 網頁右上角的使用者圖示,然後按一下 [ 登出]

  5. 在 Outlook 登入頁面上,使用 corp\re account name 搭配其密碼。 當系統提示您指定語言和時區時,請選取每個語言和時區的適當值,然後按一下 [ 儲存]

  6. 確認收件匣包含來自 Chris Ashton 的測試訊息。 按一下它,然後按一下 [ 全部回復]。 在訊息本文中,輸入 Replied,然後按一下 [ 傳送]

  7. 按一下 [郵件] 網頁右上角的使用者圖示,然後按一下 [ 登出]

  8. 在 Outlook 登入頁面上,使用 corp\chris 帳戶名稱搭配其密碼。 確認從此收件匣中傳送的回復電子郵件訊息。

您現在已準備好測試 Exchange 功能或應用程式。

停止並啟動虛擬機器

Azure 虛擬機器會在執行時帶來持續的成本。 若要協助將 Exchange 開發/測試環境的成本降到最低,請使用下列命令來停止虛擬機器:

$rgName="<your resource group name>"

Stop-AZVM -Name exVM -ResourceGroupName $rgName -Force

Stop-AZVM -Name adVM -ResourceGroupName $rgName -Force

若要重新啟動它們,請使用下列命令︰

$rgName="<your resource group name>"

Start-AZVM -Name adVM -ResourceGroupName $rgName

Start-AZVM -Name exVM -ResourceGroupName $rgName

另請參閱

針對 Azure 中的輸出 SMTP 連線問題進行疑難排解

部署 Exchange 的全新安裝

Exchange Server 系統需求

Exchange Server

Exchange Server 的新功能

雲端採用測試實驗室指南 (TLG)