共用方式為


Azure 中的 Exchange 開發/測試環境

適用於:是-img-16 2016是-img-192019 是-img-se訂閱版本

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

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)