Среды разработки и тестирования Exchange в Azure

В этом разделе описывается создание развертывания разработки и тестирования Exchange 2016 или Exchange 2019 в Microsoft Azure. Ниже показана итоговая конфигурация.

Завершенная среда разработки и тестирования Exchange в службах инфраструктуры Azure.

Эта конфигурация состоит из одного сервера Exchange Server и контроллера домена Windows Server Active Directory в подсети виртуальной сети Azure. Это обеспечивает основу и общую отправную точку, с которой можно продемонстрировать Exchange и разрабатывать Exchange Server приложения. Конфигурация предназначена только для внутреннего тестирования почты и приложений на сервере Exchange Server. В ней не настроен внешний поток обработки почты.

Процесс настройки этой среды разработки и тестирования состоит из трех перечисленных ниже основных этапов.

  1. Настройка виртуальной сети и контроллера домена (adVM).

  2. Добавьте сервер Exchange Server (exVM).

  3. Настройка Exchange.

Если у вас еще нет подписки Azure, вы можете зарегистрироваться для получения бесплатной пробной версии Azure. Если у вас есть подписка MSDN или Visual Studio, см. статью Ежемесячный кредит Azure для подписчиков Visual Studio.

Примечание.

Так как Exchange вносит изменения в схему в Windows Server AD, эта конфигурация не может использовать Доменные службы Microsoft Entra.

Этап 1. Развертывание виртуальной сети и контроллера домена

Вы можете создать виртуальную сеть Azure с контроллером домена при помощи Azure PowerShell. Указанные ниже команды PowerShell можно выполнить в командной строке или в интегрированной среде сценариев Windows PowerShell. Если вы еще не установили Azure PowerShell, просмотрите статью Начало работы с командлетами Azure PowerShell.

Примечание.

Эти команды предназначены для 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. Виртуальным машинам на основе диспетчера ресурсов требуется соответствующая учетная запись хранения. Для учетной записи хранения необходимо выбрать глобально уникальное имя, которое содержит только буквы нижнего регистра и цифры. Для отображения уже существующих учетных записей хранения можно использовать приведенную ниже команду.

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

    Чтобы проверить, уникально ли предложенное имя учетной записи хранения, воспользуйтесь приведенной ниже командой.

    Get-AZStorageAccountNameAvailability "<proposed name>"
    

    C помощью указанных ниже команд создайте учетную запись хранения для новой тестовой среды.

    $saName="<storage account name>"
    New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
    
  6. Создайте виртуальная сеть EXSrvrVnet Azure, которая будет размещать подсеть EXSrvrSubnet и защищать ее с помощью группы безопасности сети.

    $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. Создайте виртуальную машину adVM в Azure. adVM — это контроллер домена для corp.contoso.com Windows Server AD домена и DNS-сервер для виртуальных машин виртуальной сети EXSrvrVnet.

    Прежде всего укажите имя группы ресурсов, расположение Azure и имя учетной записи хранения. Затем выполните указанные ниже команды в командной строке Azure PowerShell на локальном компьютере, чтобы создать виртуальную машину Azure для adVM.

    # 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 символа и удовлетворять хотя бы трем из указанных ниже требований к сложности пароля.

    • Пароль должен содержать хотя бы одну прописную букву.

    • пароль должен содержать хотя бы одну строчную букву;

    • пароль должен содержать хотя бы одну цифру;

    • пароль должен содержать хотя бы один специальный знак.

На создание виртуальной машины в Azure может потребоваться несколько минут.

Подключение к виртуальной машине контроллера домена с использованием данных учетной записи локального администратора

  1. В портал Azure щелкните Группы ><ресурсов имя группы>> ресурсов adVM > Connect.

  2. Запустите скачанный файл adVM.rdp, а затем щелкните Подключиться.

  3. В разделе Безопасность Windows щелкните Использовать другую учетную запись. В поле Имя пользователя введите **adVM**<ADMIN_NAME>.

  4. В поле Пароль укажите пароль учетной записи ADMIN_NAME, а затем нажмите кнопку ОК.

  5. При отображении соответствующего запроса нажмите кнопку Да.

  6. Добавьте дополнительный диск данных в качестве нового тома с буквой диска F: с помощью этих команд на уровне администратора Windows PowerShell командной строки в adVM.

    $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 в качестве контроллера домена и DNS-сервера для corp.contoso.com домена. Выполните указанные ниже команды в командной строке Windows PowerShell с правами администратора на виртуальной машине adVM.

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

Обратите внимание, что на выполнение этих команд может потребоваться несколько минут.

После перезапуска виртуальной машины 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.

Этап 1 среды разработки и тестирования Exchange в службах инфраструктуры Azure.

Этап 2. Создание виртуальной машины Exchange

На этом этапе вы создадите виртуальную машину Exchange в виртуальной сети EXSrvrVNet и сделаете ее членом домена CORP.

Чтобы создать виртуальную машину Exchange с Azure PowerShell, сначала войдите в Azure с помощью учетной записи Azure из командной строки Windows PowerShell (при необходимости).

Connect-AzAccount

Вам необходимо определить глобально уникальное имя DNS для виртуальной машины exVM. Необходимо выбрать глобально уникальное 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 Server необходимо использовать учетную запись хранения уровня "Премиум".

На портале Azure подключитесь к виртуальной машине exVM, используя учетные данные учетной записи локального администратора.

После этого в командной строке Windows PowerShell присоедините виртуальную машину exVM к домену Windows Active Directory с помощью указанных ниже команд.

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

Обратите внимание, что после ввода команды Add-Computer вам потребуется указать данные учетной записи домена. Используйте учетную запись и пароль CORP\<ADMIN_NAME> .

Ниже показан результат выполнения этапа 2.

Завершенная среда разработки и тестирования Exchange в службах инфраструктуры Azure.

Этап 3. Настройка Exchange

На этом этапе вы настроите Exchange в exVM и протестируете доставку почты между двумя почтовыми ящиками.

Подготовка Active Directory для Windows Server

  1. В командной строке Windows PowerShell на локальном компьютере выполните следующую команду:

    Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
    
  2. Запишите или скопируйте полное DNS-имя из отображения команды. Это DNS-имя виртуальной машины exVM в Интернете. Это значение потребуется вам позже.

  3. При необходимости подключитесь к виртуальной машине adVM с помощью портал Azure, используя учетную запись CORP\<ADMIN_NAME> и пароль.

  4. В командной строке Windows PowerShell выполните следующую команду.

    Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
    
  5. Закройте сеанс удаленного рабочего стола виртуальной машины adVM.

Установка Exchange

  1. Подключитесь к виртуальной машине exVM с помощью портал Azure, используя учетную запись и пароль CORP\<ADMIN_NAME>.

  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. Подключитесь к виртуальной машине exVM с помощью портал Azure, используя учетную запись и пароль CORP\<ADMIN_NAME>.

  4. В диспетчер сервера щелкните Локальный сервер. В разделе Свойства для exVM щелкните Включено для конфигурации усиленной безопасности IE. В разделе Интернет-Обозреватель конфигурация усиленной безопасности нажмите кнопку Выкл. для администраторов и пользователей, а затем нажмите кнопку ОК.

  5. На начальном экране щелкните Internet Explorer и скачайте средство Unified Communications Managed API 4.0 Runtime по адресу https://www.microsoft.com/download/details.aspx?id=34992. Когда отобразится соответствующее предложение, щелкните Запустить.

  6. В программе установки Microsoft Unified Communications Managed API 4.0 Runtime нажмите кнопку Далее.

  7. Щелкните Мною прочитаны и приняты условия лицензии, а затем — Установить. На странице Установка завершена нажмите кнопку Готово.

  8. Скачайте последнюю версию Exchange из Интернета Обозреватель. Дополнительные сведения см. в разделе Обновления для Exchange Server.

  9. Нажмите кнопку Сохранить, чтобы сохранить ISO-файл в папке "Загрузки".

  10. Выберите элемент Открыть папку, затем щелкните правой кнопкой мыши ISO-файл Exchange и выберите Подключить.

  11. В виртуальной машине exVM в командной строке Windows PowerShell c правами администратора выполните указанную ниже команду.

Примечание.

  • Предыдущий переключатель /IAcceptExchangeServerLicenseTerms не будет работать начиная с накопительных обновлений (CU) за сентябрь 2021 г. Теперь необходимо использовать /IAcceptExchangeServerLicenseTerms_DiagnosticDataON или /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF для автоматической установки и установки по сценариям.

  • В примерах ниже используется переключатель /IAcceptExchangeServerLicenseTerms_DiagnosticDataON. Вы можете изменить переключатель на /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF.

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

Дождитесь завершения установки Exchange, которая может занять некоторое время, и перезапуска виртуальной машины exVM.

Добавление двух почтовых ящиков на сервер Exchange Server

  1. Подключитесь к виртуальной машине exVM с помощью портал Azure, используя учетную запись и пароль CORP\<ADMIN_NAME>.

  2. На начальном экране введите Exchange, а затем выберите элемент Командная консоль Exchange.

  3. Скопируйте указанные ниже команды в Блокнот, вставьте DNS-имя виртуальной машины exVM в Интернете в качестве значения переменной $dnsName, а затем скопируйте и вставьте полученные команды в командную консоль 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://< Интернет DNS-имя виртуальной машины> exVM или owa. Когда отобразится страница ошибки сертификата безопасности веб-сайта, щелкните Продолжить открытие этого веб-сайта. Войдите в Outlook, используя учетную запись corp\chris и соответствующий пароль для нее.

  2. Когда отобразится предложение указать язык и часовой пояс, выберите необходимые значения и щелкните Сохранить.

  3. В папке "Входящие" пользователя Chris Ashton щелкните Создать. В поле Кому введите janet, а затем выберите элемент Поиск в каталоге. В поле Тема введите Проверочное сообщение, а затем нажмите кнопку Отправить.

  4. Щелкните значок пользователя в верхней правой части веб-страницы "Почта", а затем выберите элемент Выход.

  5. Войдите в Outlook, используя учетную запись corp\janet и соответствующий пароль для нее. Когда отобразится предложение указать язык и часовой пояс, выберите необходимые значения и щелкните Сохранить.

  6. Убедитесь, что в папке "Входящие" есть проверочное сообщение от пользователя Chris Ashton. Щелкните его, а затем щелкните Ответить всем. В тексте сообщения введите Ответ, а затем щелкните Отправить.

  7. Щелкните значок пользователя в верхней правой части веб-страницы "Почта", а затем выберите Выход.

  8. Войдите в Outlook, используя учетную запись corp\chris и соответствующий пароль для нее. Убедитесь, что в папке "Входящие" есть ответное сообщение от пользователя Janet.

Теперь вы готовы к тестированию функций или приложений 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

См. также

Устранение проблем с исходящим SMTP-подключением в Azure

Развертывание новых установок Exchange

Требования к системе для Exchange Server

Exchange Server

Новые возможности Exchange Server

Руководства по лаборатории тестирования для облачных решений