Среды разработки и тестирования Exchange в Azure
В этом разделе описывается создание развертывания разработки и тестирования Exchange 2016 или Exchange 2019 в Microsoft Azure. Ниже показана итоговая конфигурация.
Эта конфигурация состоит из одного сервера Exchange Server и контроллера домена Windows Server Active Directory в подсети виртуальной сети Azure. Это обеспечивает основу и общую отправную точку, с которой можно продемонстрировать Exchange и разрабатывать Exchange Server приложения. Конфигурация предназначена только для внутреннего тестирования почты и приложений на сервере Exchange Server. В ней не настроен внешний поток обработки почты.
Процесс настройки этой среды разработки и тестирования состоит из трех перечисленных ниже основных этапов.
- Настройка виртуальной сети и контроллера домена (adVM).
- Добавьте сервер Exchange Server (exVM).
- Настройка 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 или более поздней версии.
Войдите в учетную запись Azure.
Connect-AzAccount
Получите имя подписки с помощью следующей команды.
Get-AZSubscription | Sort-Object Name | Select-Object Name
Настройте подписку Azure с помощью указанных ниже команд. Задайте переменную $subscrName , заменив все в кавычках, включая < символы и > , правильным именем.
$subscrName="<subscription name>" Select-AzSubscription -SubscriptionName $subscrName
Создайте новую группу ресурсов. Чтобы выбрать уникальное имя для группы ресурсов, с помощью этой команды отобразите имеющиеся группы ресурсов.
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
Виртуальным машинам на основе диспетчера ресурсов требуется соответствующая учетная запись хранения. Для учетной записи хранения необходимо выбрать глобально уникальное имя, которое содержит только буквы нижнего регистра и цифры. Для отображения уже существующих учетных записей хранения можно использовать приведенную ниже команду.
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
Создайте виртуальная сеть 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
Создайте виртуальную машину 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 может потребоваться несколько минут.
Подключение к виртуальной машине контроллера домена с использованием данных учетной записи локального администратора
В портал Azure щелкните Группы ><ресурсов имя группы>> ресурсов adVM > Connect.
Запустите скачанный файл adVM.rdp, а затем щелкните Подключиться.
В разделе Безопасность Windows щелкните Использовать другую учетную запись. В поле Имя пользователя введите **adVM**<ADMIN_NAME>.
В поле Пароль укажите пароль учетной записи ADMIN_NAME, а затем нажмите кнопку ОК.
При отображении соответствующего запроса нажмите кнопку Да.
Добавьте дополнительный диск данных в качестве нового тома с буквой диска 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
Настройте 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 снова подключитесь к ней.
Подключение к виртуальной машине контроллера домена с помощью учетных данных домена
В портал Azure щелкните Группы ><ресурсов, имя новой группы>> ресурсов adVM > Connect.
Запустите скачанный файл adVM.rdp, а затем щелкните Подключиться.
В разделе Безопасность Windows щелкните Использовать другую учетную запись. В поле Имя пользователя введите **CORP**<ADMIN_NAME>.
В поле Пароль укажите пароль учетной записи ADMIN_NAME, а затем нажмите кнопку ОК.
При появлении соответствующего запроса нажмите кнопку Да.
На рабочем столе откройте командную строку Windows PowerShell с правами администратора и выполните указанную ниже команду.
Add-WindowsFeature RSAT-ADDS-Tools
Ниже показан результат выполнения этапа 1.
Этап 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.
Этап 3. Настройка Exchange
На этом этапе вы настроите Exchange в exVM и протестируете доставку почты между двумя почтовыми ящиками.
Подготовка Active Directory для Windows Server
В командной строке Windows PowerShell на локальном компьютере выполните следующую команду:
Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
Запишите или скопируйте полное DNS-имя из отображения команды. Это DNS-имя виртуальной машины exVM в Интернете. Это значение потребуется вам позже.
При необходимости подключитесь к виртуальной машине adVM с помощью портал Azure, используя учетную запись CORP\<ADMIN_NAME> и пароль.
В командной строке Windows PowerShell выполните следующую команду.
Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
Закройте сеанс удаленного рабочего стола виртуальной машины adVM.
Установка Exchange
Подключитесь к виртуальной машине exVM с помощью портал Azure, используя учетную запись и пароль CORP\<ADMIN_NAME>.
В виртуальной машине 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
Подключитесь к виртуальной машине exVM с помощью портал Azure, используя учетную запись и пароль CORP\<ADMIN_NAME>.
В диспетчер сервера щелкните Локальный сервер. В разделе Свойства для exVM щелкните Включено для конфигурации усиленной безопасности IE. В разделе Интернет-Обозреватель конфигурация усиленной безопасности нажмите кнопку Выкл. для администраторов и пользователей, а затем нажмите кнопку ОК.
На начальном экране щелкните Internet Explorer и скачайте средство Unified Communications Managed API 4.0 Runtime по адресу https://www.microsoft.com/download/details.aspx?id=34992. Когда отобразится соответствующее предложение, щелкните Запустить.
В программе установки Microsoft Unified Communications Managed API 4.0 Runtime нажмите кнопку Далее.
Щелкните Мною прочитаны и приняты условия лицензии, а затем Установить. На странице Установка завершена нажмите кнопку Готово.
Скачайте последнюю версию Exchange из Интернета Обозреватель. Дополнительные сведения см. в разделе Обновления для Exchange Server.
Нажмите кнопку Сохранить, чтобы сохранить ISO-файл в папке "Загрузки".
Выберите элемент Открыть папку, затем щелкните правой кнопкой мыши ISO-файл Exchange и выберите Подключить.
В виртуальной машине 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
Подключитесь к виртуальной машине exVM с помощью портал Azure, используя учетную запись и пароль CORP\<ADMIN_NAME>.
На начальном экране введите Exchange, а затем выберите элемент Командная консоль Exchange.
Скопируйте указанные ниже команды в Блокнот, вставьте 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
Сохраните указанный пароль в надежном месте. Затем создайте два почтовых ящика, выполнив указанные ниже команды.
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"
Проверка доставки почты между почтовыми ящиками
В браузере на локальном компьютере перейдите на веб-сайт https://< Интернет DNS-имя виртуальной машины> exVM или owa. Когда отобразится страница ошибки сертификата безопасности веб-сайта, щелкните Продолжить открытие этого веб-сайта. Войдите в Outlook, используя учетную запись corp\chris и соответствующий пароль для нее.
Когда отобразится предложение указать язык и часовой пояс, выберите необходимые значения и щелкните Сохранить.
В папке "Входящие" пользователя Chris Ashton щелкните Создать. В поле Кому введите janet, а затем выберите элемент Поиск в каталоге. В поле Тема введите Проверочное сообщение, а затем нажмите кнопку Отправить.
Щелкните значок пользователя в верхней правой части веб-страницы "Почта", а затем выберите элемент Выход.
Войдите в Outlook, используя учетную запись corp\janet и соответствующий пароль для нее. Когда отобразится предложение указать язык и часовой пояс, выберите необходимые значения и щелкните Сохранить.
Убедитесь, что в папке "Входящие" есть проверочное сообщение от пользователя Chris Ashton. Щелкните его, а затем щелкните Ответить всем. В тексте сообщения введите Ответ, а затем щелкните Отправить.
Щелкните значок пользователя в верхней правой части веб-страницы "Почта", а затем выберите Выход.
Войдите в 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
Руководства по лаборатории тестирования для облачных решений