Ambientes de desenvolvimento/teste do Exchange no Azure

Este tópico orienta a criação de uma implantação de desenvolvimento/teste do Exchange 2016 ou Exchange 2019 no Microsoft Azure. Esta é a configuração resultante.

O ambiente de desenvolvimento/teste do Exchange concluído nos serviços de infraestrutura do Azure.

Essa configuração consiste em um único servidor exchange e um controlador de domínio Windows Server Active Directory (AD) em uma sub-rede de uma rede virtual do Azure. Isso fornece uma base e um ponto de partida comum a partir do qual você pode demonstrar o Exchange e desenvolver aplicativos Exchange Server. Essa configuração é apenas para testes internos de email e aplicativo no servidor exchange. Nenhum fluxo de email externo está configurado.

Há três fases principais para configurar esse ambiente de desenvolvimento/teste:

  1. Configurar a rede virtual e o controlador de domínio (adVM).
  2. Adicione o servidor Exchange (exVM).
  3. Configurar o Exchange.

Se você ainda não tiver uma assinatura do Azure, poderá se inscrever para uma Avaliação Gratuita do Azure. Se você tiver uma assinatura do MSDN ou do Visual Studio, consulte Crédito mensal do Azure para assinantes do Visual Studio.

Observação

Como o Exchange faz alterações no esquema no Windows Server AD, essa configuração não pode usar Microsoft Entra Domain Services.

Fase 1: implantar a rede virtual e um controlador de domínio

Você pode criar uma nova rede virtual do Azure com um controlador de domínio com Azure PowerShell. Você pode executar os seguintes comandos do PowerShell a partir de um prompt de comando Windows PowerShell ou no ISE (Ambiente integrado de script) do PowerShell. Se você não instalou o Azure PowerShell, confira Introdução aos cmdlets do Azure PowerShell.

Observação

Esses comandos são para Azure PowerShell 1.0.0 e posterior.

  1. Entre em sua conta do Azure.

    Connect-AzAccount
    
  2. Para obter o nome de sua assinatura, use este comando.

    Get-AZSubscription | Sort-Object Name | Select-Object Name
    
  3. Defina sua assinatura do Azure com os comandos a seguir. Defina a variável $subscrName substituindo tudo dentro das aspas, incluindo os < caracteres e > , com o nome correto.

    $subscrName="<subscription name>"
    
    Select-AzSubscription -SubscriptionName $subscrName
    
  4. Crie um novo grupo de recursos. Para determinar um nome de grupo de recursos exclusivo, use este comando para listar os grupos de recurso existentes.

    Get-AZResourceGroup | Sort-Object ResourceGroupName | Select-Object ResourceGroupName
    

    Crie o novo grupo de recursos com estes comandos. Defina as variáveis substituindo tudo dentro das aspas, incluindo os < caracteres e > , com os nomes corretos.

    $rgName="<resource group name>"
    
    $locName="<location name, such as West US>"
    
    New-AZResourceGroup -Name $rgName -Location $locName
    
  5. As máquinas virtuais baseadas no Gerenciador de Recursos exigem uma conta de armazenamento baseada no Gerenciador de Recursos. Você deve escolher um nome globalmente exclusivo para sua conta de armazenamento que contém apenas letras minúsculas e números. Você pode usar este comando para listar as contas de armazenamento existentes.

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

    Use este comando para testar se o nome proposto para a conta de armazenamento é exclusivo.

    Get-AZStorageAccountNameAvailability "<proposed name>"
    

    Crie uma nova conta de armazenamento para seu novo ambiente de teste com esses comandos.

    $saName = "<storage account name>"
    
    New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
    
  6. Crie o exSrvrVnet Azure Rede Virtual que hospedará a sub-rede EXSrvrSubnet e a protegerá com um grupo de segurança de rede.

    $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. Crie a máquina virtual adVM no Azure. adVM é um controlador de domínio para o domínio corp.contoso.com Windows Server AD e um servidor DNS para as máquinas virtuais da rede virtual EXSrvrVnet.

    Primeiro, preencha o nome do seu grupo de recursos, local do Azure e nome da conta de armazenamento e execute esses comandos no prompt de comando Azure PowerShell no computador local para criar uma máquina virtual do Azure para 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
    

    Você será solicitado para obter um nome de usuário e uma senha. Este artigo se referirá a esse nome de usuário como ADMIN_NAME. Use uma senha forte e armazene ambos em um local seguro.

    Observação: a senha especificada não pode ser "pass@word1". Ela deve ter entre 8 a 123 caracteres e atender a pelo menos três dos seguintes requisitos de complexidade de senha:

    • Contém uma letra maiúscula
    • Contém uma letra minúscula
    • Contém um dígito numérico
    • Contém um caractere especial

Pode levar alguns minutos para o Azure compilar a máquina virtual.

Conectar-se à máquina virtual do controlador de domínio usando credenciais de conta de administrador local

  1. No portal do Azure, clique em Grupos de ><Recursos seu nome>> do grupo de recursos adVM > Connect.

  2. Execute o arquivo adVM.rdp baixado e clique em Conectar.

  3. Em Segurança do Windows, clique em Usar outra conta. Em Nome de usuário, digite **adVM**<ADMIN_NAME>.

  4. Em Senha, digite a senha da conta de ADMIN_NAME e clique em OK.

  5. Quando solicitado, clique em Sim.

  6. Adicione um disco de dados extra como um novo volume com a letra F da unidade: com esses comandos em um prompt de comando Windows PowerShell no nível do administrador no 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. Configure adVM como um controlador de domínio e servidor DNS para o domínio corp.contoso.com. Execute estes comandos em um prompt de comando do Windows PowerShell de nível de administrador no adVM.

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

Esses comandos podem levar alguns minutos para serem concluídos.

Após a reinicialização do adVM, reconecte-se à máquina virtual do adVM.

Conecte-se à máquina virtual do controlador de domínio usando as credenciais do domínio

  1. No portal do Azure, clique em Grupos ><de Recursos o nome do novo grupo>> de recursos adVM > Connect.

  2. Execute o arquivo adVM.rdp baixado e clique em Conectar.

  3. Em Segurança do Windows, clique em Usar outra conta. Em Nome de usuário, digite **CORP**<ADMIN_NAME>.

  4. Em Senha, digite a senha da conta de ADMIN_NAME e clique em OK.

  5. Quando solicitado, clique em Sim.

  6. Na área de trabalho, abra um prompt de comando Windows PowerShell no nível do administrador e execute o seguinte comando:

    Add-WindowsFeature RSAT-ADDS-Tools
    

Este é o resultado da Fase 1.

Fase 1 do ambiente de desenvolvimento/teste do Exchange nos serviços de infraestrutura do Azure.

Fase 2: Criar a máquina virtual do Exchange

Nesta fase, você cria uma máquina virtual exchange na rede virtual EXSrvrVNet e faz dela um membro do domínio CORP.

Para criar a máquina virtual do Exchange com Azure PowerShell, primeiro faça logon no Azure com sua conta do Azure a partir do prompt de comando Windows PowerShell (se necessário).

Connect-AzAccount

Você deve determinar um nome DNS globalmente exclusivo para a máquina virtual exVM. Você deve escolher um nome DNS globalmente exclusivo que contém apenas letras minúsculas e números. Você pode fazer isso com os seguintes comandos do PowerShell:

$vmDNSName="<DNS name to test>"

$rgName="<resource group name>"

$locName=(Get-AZResourceGroup -Name $rgName).Location

Test-AZDnsAvailability -DomainQualifiedName $vmDNSName -Location $locName

Se você vir "True", seu nome proposto é globalmente exclusivo.

Em seguida, preencha os valores de variável e execute o bloco resultante no prompt do 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

Observação

Esse bloco de comandos usa uma conta de armazenamento padrão criada na fase 1 para reduzir os custos para esse ambiente de desenvolvimento/teste. Para um servidor exchange de produção, você deve usar uma conta de armazenamento premium.

No portal do Azure, conecte-se à máquina virtual exVM usando as credenciais da conta de administrador local.

Em seguida, junte o exVM ao domínio do Windows AD com esses comandos em um prompt de Windows PowerShell.

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

Observe que você deve fornecer as credenciais de conta de domínio depois de inserir o comando Adicionar-Computador. Use a conta e a senha do CORP\<ADMIN_NAME> .

Este é o resultado da Fase 2.

O ambiente de desenvolvimento/teste do Exchange concluído nos serviços de infraestrutura do Azure.

Fase 3: Configurar o Exchange

Nesta fase, você configura o Exchange no exVM e testa a entrega de emails entre duas caixas de correio.

Preparar Windows Server AD

  1. No prompt de comando Windows PowerShell no computador local, execute o seguinte comando:

    Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
    
  2. Observe ou copie o nome DNS completo da exibição do comando. Este é o nome DNS da Internet da máquina virtual exVM. Esse valor será necessário posteriormente.

  3. Se necessário, conecte-se à máquina virtual adVM com o portal do Azure usando a conta e a senha corp\<ADMIN_NAME>.

  4. No prompt de comando do Windows PowerShell, execute o seguinte comando:

    Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
    
  5. Feche a sessão da área de trabalho remota com adVM.

Instalar o Exchange

  1. Conecte-se à máquina virtual exVM com o portal do Azure usando a conta e a senha corp\<ADMIN_NAME>.

  2. No exVM, abra um prompt de comando Windows PowerShell no nível do administrador e execute os comandos a seguir.

    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. Conecte-se à máquina virtual exVM com o portal do Azure usando a conta e a senha corp\<ADMIN_NAME>.

  4. Em Gerenciador do Servidor, clique em Servidor Local. Nas Propriedades para exVM, clique em Ativar para Configuração de Segurança Aprimorada do IE. Na Internet Explorer Configuração de Segurança Aprimorada, clique em Desativar para administradores e usuários e clique em OK.

  5. Na tela Iniciar, clique em Internet Explorer e baixe a API Gerenciada de Comunicações Unificadas 4.0 Runtime do https://www.microsoft.com/download/details.aspx?id=34992. Quando for solicitado, clique em Executar.

  6. Quando solicitado com a API Gerenciada de Comunicações Unificadas da Microsoft 4.0, Configuração do Runtime, clique em Avançar.

  7. Clique em Ler e aceitar os termos da licença e clique em Instalar. Na página Instalação é Concluir , clique em Concluir.

  8. Na Internet Explorer, baixe a versão mais recente do Exchange. Para obter mais informações, consulte Atualizações para Exchange Server.

  9. Clique em Salvar para armazenar o arquivo ISO na pasta Downloads.

  10. Clique em Abrir Pasta, clique com o botão direito do mouse no arquivo ISO do Exchange e clique em Montar.

  11. Em um prompt de comando Windows PowerShell no nível do administrador no exVM, execute o seguinte:

Observação

  • A opção /IAcceptExchangeServerLicenseTerms anterior não funcionará a partir das CUs (Atualizações Cumulativas) de setembro de 2021. Agora você deve usar /IAcceptExchangeServerLicenseTerms_DiagnosticDataON ou /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF para instalações autônomas e com script.

  • Os exemplos a seguir usam a opção /IAcceptExchangeServerLicenseTerms_DiagnosticDataON. Você pode alterar a opção para /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF.

e:

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

Aguarde até que a instalação do Exchange seja concluída, o que pode levar algum tempo, e as reinicializações exVM.

Adicionar duas caixas de correio ao servidor exchange

  1. Conecte-se à máquina virtual exVM com o portal do Azure usando a conta e a senha corp\<ADMIN_NAME>.

  2. Na tela Iniciar, digite Exchange e clique em Shell de Gerenciamento do Exchange.

  3. Copie os comandos a seguir no Bloco de Notas, insira o nome DNS da Internet da máquina virtual exVM para a variável $dnsName e copie e cole os comandos resultantes no Shell de Gerenciamento do 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. Registre a senha especificada em um local seguro. Em seguida, execute esses comandos para criar duas caixas de correio.

    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"
    

Testar a entrega de email entre caixas de correio

  1. No navegador do computador local, acesse o site https://< Nome DNSinternet da máquina> virtual exVM/owa. Quando solicitado com uma página de erro para o certificado de segurança do site, clique em Continuar para este site. Na página de entrada do Outlook, use o nome da conta corp\chris com sua senha.

  2. Quando solicitado a especificar o idioma e o fuso horário, selecione o valor apropriado para cada um e clique em Salvar.

  3. Na caixa de entrada de Chris Ashton, clique em Novo. Em Para, digite janet e clique em Diretório de Pesquisa. Para Assunto, digiteMensagem de teste e clique em Enviar.

  4. Clique no ícone do usuário na parte superior direita da página da Web do Mail e clique em Sair.

  5. Na página de entrada do Outlook, use o nome da conta corp\janet com sua senha. Quando solicitado a especificar o idioma e o fuso horário, selecione o valor apropriado para cada um e clique em Salvar.

  6. Verifique se a caixa de entrada contém a mensagem de teste de Chris Ashton. Clique nele e clique em Responder a todos. No corpo da mensagem, digite Replied e clique em Enviar.

  7. Clique no ícone do usuário na parte superior direita da página da Web do Mail e clique em Sair.

  8. Na página de entrada do Outlook, use o nome da conta corp\chris com sua senha. Verifique se a mensagem de email de resposta enviada de Janet está na caixa de entrada.

Agora você está pronto para testar recursos ou aplicativos do Exchange.

Parar e iniciar as máquinas virtuais

As máquinas virtuais do Azure geram um custo contínuo quando estão em execução. Para ajudar a minimizar o custo do ambiente de desenvolvimento/teste do Exchange, use esses comandos para parar as máquinas virtuais:

$rgName="<your resource group name>"

Stop-AZVM -Name exVM -ResourceGroupName $rgName -Force

Stop-AZVM -Name adVM -ResourceGroupName $rgName -Force

Para iniciá-las novamente, use estes comandos:

$rgName="<your resource group name>"

Start-AZVM -Name adVM -ResourceGroupName $rgName

Start-AZVM -Name exVM -ResourceGroupName $rgName

Confira também

Solucionar problemas de conectividade SMTP de saída no Azure

Implantar novas instalações do Exchange

Requisitos de sistema do Exchange Server

Exchange Server

Novidades no Exchange Server

Guias do Laboratório de Teste (TLGs) para adoção de nuvem