Среды разработки и тестирования 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

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