Exchange среды разработчика и тестирования в Azure
В этом разделе вы можете создать развертывание Exchange 2016 или Exchange 2019 в Microsoft Azure. Ниже показана итоговая конфигурация.
Эта конфигурация состоит из одного сервера Exchange Server и контроллера домена Windows Server Active Directory в подсети виртуальной сети Azure. Это обеспечивает базовую и общую отправную точку, с которой можно Exchange и разрабатывать Exchange Server приложения. Конфигурация предназначена только для внутреннего тестирования почты и приложений на сервере Exchange Server. В ней не настроен внешний поток обработки почты.
Процесс настройки этой среды разработки и тестирования состоит из трех перечисленных ниже основных этапов.
Настройка виртуальной сети и контроллера домена (adVM).
Добавьте сервер Exchange (exVM).
Настройка Exchange.
Если у вас еще нет подписки Azure, вы можете зарегистрироваться для бесплатной пробной пробной подписки Azure. Если у вас есть подписка на MSDN или Visual Studio, см. в примере Ежемесячный кредит Azure для Visual Studio абонентов.
Примечание
Поскольку Exchange изменяет схему в Windows Server AD, эта конфигурация не может использовать Azure Active Directory службы домена.
Этап 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 , заменив все в кавычках, < and > включая символы, правильным именем.
$subscrName="<subscription name>" Select-AzSubscription -SubscriptionName $subscrName
Создание новой группы ресурсов. Чтобы выбрать уникальное имя для группы ресурсов, с помощью этой команды отобразите имеющиеся группы ресурсов.
Get-AZResourceGroup | Sort-Object ResourceGroupName | Select-Object ResourceGroupName
Создайте группу ресурсов с помощью указанных ниже команд. Задайте переменные, заменив все символы в кавычках (в том числе символы < and >) правильными именами.
$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-Подключение > <your resource group name>> >.
Запустите скачанный файл 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 выберите Группы ресурсов > <the name of your new resource group> > adVM > Подключиться.
Запустите скачанный файл 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 необходимо использовать учетную запись хранения премиум-класса.
На портале 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-Features, 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 для параметра Конфигурация усиленной безопасности Internet Explorer выберите значение Вкл. В разделе Конфигурация усиленной безопасности Internet Explorer для параметров "Администраторы" и "Пользователи" выберите значение Выкл. и нажмите кнопку ОК.
На начальном экране щелкните 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 нажмите кнопку Далее.
Щелкните Мною прочитаны и приняты условия лицензии, а затем Установить. На странице Установка завершена нажмите кнопку Готово.
Из Internet Explorer скачайте последнюю версию 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"
Проверка доставки почты между почтовыми ящиками
В браузере на локальном компьютере можно получить доступ к веб-сайту<Internet DNS name of the exVM virtual machine> https:// /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
Руководства по лаборатории тестирования для облачных решений