Este tópico orienta-o ao longo da criação de uma implementação de desenvolvimento/teste do Exchange 2016 ou Exchange 2019 no Microsoft Azure. Esta é a configuração resultante.
Esta configuração consiste num único servidor Exchange e num controlador de domínio Windows Server Active Directory (AD) numa sub-rede de uma rede virtual do Azure. Isto fornece uma base e um ponto de partida comum a partir do qual pode demonstrar o Exchange e desenvolver aplicações Exchange Server. Esta configuração destina-se apenas a testes internos de e-mail e aplicações no servidor Exchange. Não está configurado nenhum fluxo de e-mail externo.
Há três fases principais para configurar esse ambiente de desenvolvimento/teste:
- Configurar a rede virtual e o controlador de domínio (adVM).
- Adicione o servidor Exchange (exVM).
- Configurar o Exchange.
Se ainda não tiver uma subscrição do Azure, pode inscrever-se numa Avaliação Gratuita do Azure. Se tiver uma subscrição do MSDN ou do Visual Studio, veja Crédito mensal do Azure para subscritores do Visual Studio.
Observação
Uma vez que o Exchange efetua alterações ao esquema no Windows Server AD, esta configuração não pode utilizar Microsoft Entra Domain Services.
Fase 1: implantar a rede virtual e um controlador de domínio
Pode criar uma nova rede virtual do Azure com um controlador de domínio com Azure PowerShell. Pode executar os seguintes comandos do PowerShell a partir de uma linha de comandos Windows PowerShell ou no Ambiente de Script Integrado (ISE) do PowerShell. Se você não instalou o Azure PowerShell, confira Introdução aos cmdlets do Azure PowerShell.
Observação
Estes comandos destinam-se a Azure PowerShell 1.0.0 e posterior.
Inicie sessão na sua conta do Azure.
Connect-AzAccount
Para obter o nome de sua assinatura, use este comando.
Get-AZSubscription | Sort-Object Name | Select-Object Name
Defina sua assinatura do Azure com os comandos a seguir. Defina a variável $subscrName ao substituir tudo dentro das aspas, incluindo os < carateres e > , pelo nome correto.
$subscrName="<subscription name>"
Select-AzSubscription -SubscriptionName $subscrName
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 ao substituir tudo dentro das aspas, incluindo os < carateres e > , pelos nomes corretos.
$rgName="<resource group name>"
$locName="<location name, such as West US>"
New-AZResourceGroup -Name $rgName -Location $locName
As máquinas virtuais baseadas no Gerenciador de Recursos exigem uma conta de armazenamento baseada no Gerenciador de Recursos. Tem de escolher um nome globalmente exclusivo para a sua conta de armazenamento que contenha 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 o seu novo ambiente de teste com estes comandos.
$saName = "<storage account name>"
New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
Crie a Rede Virtual exSrvrVnet do Azure que irá alojar a sub-rede EXSrvrSubnet e protegê-la 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
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.
Em primeiro lugar, preencha o nome do grupo de recursos, a localização do Azure e o nome da conta de armazenamento e execute estes comandos na linha de comandos 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
Ser-lhe-á pedido um nome de utilizador e palavra-passe. Este artigo irá referir-se a este nome de utilizador como ADMIN_NAME. Use uma senha forte e armazene ambos em um local seguro.
Nota: a palavra-passe que especificar 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.
Ligar à máquina virtual do controlador de domínio com as credenciais da conta de administrador local
No portal do Azure, clique em Grupos de Recursos o ><nome>> do grupo de recursos adVM > Connect.
Execute o arquivo adVM.rdp baixado e clique em Conectar.
Em Segurança do Windows, clique em Usar outra conta. Em Nome de utilizador, escreva **adVM**<ADMIN_NAME>.
Em Senha, digite a senha da conta de ADMIN_NAME e clique em OK.
Quando solicitado, clique em Sim.
Adicione um disco de dados extra como um novo volume com a letra de unidade F: com estes comandos numa linha de comandos Windows PowerShell ao nível do administrador na 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
Configure adVM como 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
Na portal do Azure, clique em Grupos de Recursos ><no nome do novo grupo>> de recursos adVM > Connect.
Execute o arquivo adVM.rdp baixado e clique em Conectar.
Em Segurança do Windows, clique em Usar outra conta. Em Nome de utilizador, escreva **CORP**<ADMIN_NAME>.
Em Senha, digite a senha da conta de ADMIN_NAME e clique em OK.
Quando solicitado, clique em Sim.
No ambiente de trabalho, abra uma linha de comandos ao nível do administrador Windows PowerShell e execute o seguinte comando:
Add-WindowsFeature RSAT-ADDS-Tools
Este é o resultado da Fase 1.
Fase 2: Criar a máquina virtual do Exchange
Nesta fase, vai criar uma máquina virtual do Exchange na rede virtual EXSrvrVNet e torná-la membro do domínio CORP.
Para criar a máquina virtual do Exchange com Azure PowerShell, inicie sessão primeiro no Azure com a sua conta do Azure a partir da linha de comandos Windows PowerShell (se necessário).
Connect-AzAccount
Tem de determinar um nome DNS globalmente exclusivo para a máquina virtual exVM. Tem de escolher um nome DNS globalmente exclusivo que contenha apenas letras minúsculas e números. Pode fazê-lo 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 vir "Verdadeiro", o nome proposto é globalmente exclusivo.
Em seguida, preencha os valores das variáveis e execute o bloco resultante na linha de comandos 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
Este bloco de comandos utiliza uma conta de armazenamento padrão criada na fase 1 para reduzir os custos deste ambiente de desenvolvimento/teste. Para um servidor Exchange de produção, tem de utilizar uma conta de armazenamento premium.
A partir do portal do Azure, ligue-se à máquina virtual exVM com as credenciais da conta de administrador local.
Em seguida, associe a exVM ao domínio do Windows AD com estes comandos numa linha 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. Utilize a conta CORP\<ADMIN_NAME> e a palavra-passe.
Este é o resultado da Fase 2.
Nesta fase, vai configurar o Exchange em exVM e testar a entrega de correio entre duas caixas de correio.
Preparar Windows Server AD
Na linha de comandos Windows PowerShell no computador local, execute o seguinte comando:
Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
Anote ou copie o nome DNS completo a partir da apresentação do comando. Este é o nome DNS da Internet da máquina virtual exVM. Esse valor será necessário posteriormente.
Se necessário, ligue-se à máquina virtual adVM com o portal do Azure com a conta CORP\<ADMIN_NAME> e a palavra-passe.
No prompt de comando do Windows PowerShell, execute o seguinte comando:
Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
Feche a sessão de ambiente de trabalho remoto com adVM.
Ligue-se à máquina virtual exVM com o portal do Azure através da conta CORP\<ADMIN_NAME> e da palavra-passe.
A partir de exVM, abra uma linha de comandos Windows PowerShell ao nível do administrador e execute os seguintes comandos.
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
Ligue-se à máquina virtual exVM com o portal do Azure através da conta CORP\<ADMIN_NAME> e da palavra-passe.
Em Gerenciador do Servidor, clique em Servidor Local. Em Propriedades da exVM, clique em Ativado para Configuração de Segurança Avançada do IE. Na Internet Explorer Configuração de Segurança Avançada, clique em Desativado para Administradores e Utilizadores e, em seguida, clique em OK.
No ecrã Início, clique em Internet Explorer e, em seguida, transfira a API Gerida de Comunicações Unificadas 4.0 Runtime a partir de https://www.microsoft.com/download/details.aspx?id=34992. Quando for solicitado, clique em Executar.
Quando lhe for pedido com a Microsoft Unified Communications Managed API 4.0, Configuração do Runtime, clique em Seguinte.
Clique em Li e aceito os termos de licenciamento e, em seguida, clique em Instalar. Na página Instalação concluída , clique em Concluir.
A partir da Internet Explorer, transfira a versão mais recente do Exchange. Para obter mais informações, veja Atualizações para Exchange Server.
Clique em Guardar para armazenar o ficheiro ISO na pasta Transferências.
Clique em Abrir Pasta, clique com o botão direito do rato no ficheiro ISO do Exchange e, em seguida, clique em Montar.
A partir de uma linha de comandos ao nível do administrador Windows PowerShell na 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 configuração do Exchange seja concluída, o que pode demorar algum tempo e a exVM é reiniciada.
Adicionar duas caixas de correio ao servidor Exchange
Ligue-se à máquina virtual exVM com o portal do Azure através da conta CORP\<ADMIN_NAME> e da palavra-passe.
No ecrã Início, escreva Exchange e, em seguida, clique em Shell de Gestão do Exchange.
Copie os seguintes comandos para o Bloco de Notas, insira o nome DNS da Internet da máquina virtual exVM para a variável $dnsName e, em seguida, copie e cole os comandos resultantes na Shell de Gestão 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
Registe a palavra-passe especificada num local seguro. Em seguida, execute estes 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 e-mail entre caixas de correio
A partir do browser no seu computador local, aceda ao site https://< Nem nome DNS da exVM virtual machine>/owa. Quando lhe for pedida uma página de erro para o certificado de segurança do site, clique em Continuar para este site. Na página de início de sessão do Outlook, utilize o nome da conta corp\chris com a respetiva palavra-passe.
Quando lhe for pedido para especificar o idioma e o fuso horário, selecione o valor adequado para cada um e, em seguida, clique em Guardar.
Na caixa de entrada de Chris Ashton, clique em Novo. Em Para, escreva janet e, em seguida, clique em Procurar diretório. Em Assunto, escreva Mensagem de teste e, em seguida, clique em Enviar.
Clique no ícone de utilizador na parte superior direita da página Web Correio e, em seguida, clique em Terminar sessão.
Na página de início de sessão do Outlook, utilize o nome da conta corp\janet com a respetiva palavra-passe. Quando lhe for pedido para especificar o idioma e o fuso horário, selecione o valor adequado para cada um e, em seguida, clique em Guardar.
Verifique se a caixa de entrada contém a mensagem de teste de Chris Ashton. Clique no mesmo e, em seguida, clique em Responder a todos. No corpo da mensagem, escreva Respondeu e, em seguida, clique em Enviar.
Clique no ícone de utilizador na parte superior direita da página Web Correio e, em seguida, clique em Terminar sessão.
Na página de início de sessão do Outlook, utilize o nome da conta corp\chris com a respetiva palavra-passe. Verifique se a mensagem de e-mail de resposta enviada pela Janet está na caixa de entrada.
Está agora pronto para testar as funcionalidades ou aplicações 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 seu ambiente de desenvolvimento/teste do Exchange, utilize estes 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
Resolver problemas de conectividade do 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