Entornos de desarrollo y pruebas de Exchange en Azure

Este tema le guiará a través de la creación de una implementación de desarrollo o prueba de Exchange 2016 o Exchange 2019 en Microsoft Azure. Esta es la configuración resultante.

El entorno de desarrollo y pruebas de Exchange completado en los servicios de infraestructura de Azure.

Esta configuración consta de un único servidor Exchange y un controlador de dominio de Windows Server Active Directory (AD) en una subred de una red virtual de Azure. Esto proporciona una base y un punto de partida común desde el que puede demostrar Exchange y desarrollar aplicaciones Exchange Server. Esta configuración solo sirve para el correo electrónico interno y la realización de pruebas con aplicaciones en el servidor Exchange. No se configura ningún flujo de correo electrónico externo.

Existen tres fases principales para configurar el entorno de desarrollo y pruebas:

  1. Configurar la red virtual y el controlador de dominio (adVM).

  2. Agregue el servidor Exchange (exVM).

  3. Configurar Exchange.

Si aún no tiene una suscripción a Azure, puede registrarse para obtener una evaluación gratuita de Azure. Si tiene una suscripción a MSDN o Visual Studio, consulte Crédito mensual de Azure para suscriptores de Visual Studio.

Nota:

Dado que Exchange realiza cambios en el esquema en Windows Server AD, esta configuración no puede usar Servicios de dominio de Microsoft Entra.

Fase 1: Implementar la red virtual y un controlador de dominio

Puede crear una red virtual de Azure con un controlador de dominio mediante Azure PowerShell. Puede ejecutar los comandos de PowerShell siguientes desde un símbolo del sistema de Windows PowerShell o en el Entorno de scripting integrado (ISE) de PowerShell. Si no ha instalado Azure PowerShell, consulte Introducción a los cmdlets de Azure PowerShell.

Nota:

Estos comandos son válidos para Azure PowerShell 1.0.0 y para las versiones posteriores.

  1. Inicie sesión en su cuenta de Azure.

    Connect-AzAccount
    
  2. Obtenga su nombre de suscripción mediante el comando siguiente.

    Get-AZSubscription | Sort-Object Name | Select-Object Name
    
  3. Establezca su suscripción de Azure con los siguientes comandos. Establezca la variable $subscrName reemplazando todo lo que se encuentra entre comillas, incluidos los < caracteres y > , por el nombre correcto.

    $subscrName="<subscription name>"
    Select-AzSubscription -SubscriptionName $subscrName
    
  4. Cree un nuevo grupo de recursos. Para determinar un nombre único de grupo de recursos, use este comando a fin de enumerar los grupos de recursos existentes.

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

    Cree el nuevo grupo de recursos con estos comandos. Establezca las variables reemplazando todo el contenido entrecomillado, incluidos los caracteres < y >, por los nombres correctos.

    $rgName="<resource group name>"
    $locName="<location name, such as West US>"
    New-AZResourceGroup -Name $rgName -Location $locName
    
  5. Las máquinas virtuales basadas en el Administrador de recursos requieren una cuenta de almacenamiento basada también en este. Debe elegir un nombre único global para la cuenta de almacenamiento que contenga solo letras minúsculas y números. Puede usar este comando para enumerar las cuentas de almacenamiento existentes.

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

    Use este comando para comprobar si los nombres de las cuenta de almacenamiento de información que se propongan son únicos o no.

    Get-AZStorageAccountNameAvailability "<proposed name>"
    

    Cree una nueva cuenta de almacenamiento para su nuevo entorno de pruebas con estos comandos.

    $saName="<storage account name>"
    New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
    
  6. Cree el Virtual Network de Azure EXSrvrVnet que hospedará la subred EXSrvrSubnet y la protegerá con un grupo de seguridad de red.

    $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. Cree la máquina virtual adVM en Azure. adVM es un controlador de dominio para el dominio corp.contoso.com Windows Server AD y un servidor DNS para las máquinas virtuales de la red virtual EXSrvrVnet.

    Primero, proporcione el nombre de su grupo de recursos, ubicación de Azure y nombre de la cuenta de almacenamiento y ejecute estos comandos en el símbolo del sistema de Azure PowerShell en su equipo local para crear una máquina virtual de 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
    

    Se le pedirá un nombre de usuario y una contraseña. En este artículo se hará referencia a este nombre de usuario como ADMIN_NAME. Use una contraseña segura y registre ambos en una ubicación segura.

    Nota: La contraseña que especifique no puede ser "pass@word1". Debe tener de 8 a 123 caracteres y debe cumplir al menos 3 de los siguientes requisitos de complejidad de las contraseñas:

    • Contener una letra mayúscula

    • Contener una letra minúscula

    • Contener un dígito numérico

    • Contener un carácter especial

Azure puede tardar unos minutos en crear la máquina virtual.

Conectarse a la máquina virtual del controlador de dominio mediante las credenciales de la cuenta del administrador local

  1. En la Azure Portal, haga clic en Grupos de recursos ><en el nombre>> del grupo de recursos adVM > Connect.

  2. Ejecute el archivo adVM.rdp que se descarga y luego haga clic en Conectar.

  3. En Seguridad de Windows, haga clic en Usar otra cuenta. En Nombre de usuario, escriba **adVM**<ADMIN_NAME>.

  4. En Contraseña, escriba la contraseña de la cuenta ADMIN_NAME y luego haga clic en Aceptar.

  5. Cuando se le solicite, haga clic en .

  6. Agregue un disco de datos adicional como un nuevo volumen con la letra de unidad F: con estos comandos en un nivel de administrador Windows PowerShell símbolo del sistema en 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 controlador de dominio y servidor DNS para el dominio corp.contoso.com. Desde un símbolo del sistema de Windows PowerShell con el nivel de administrador en adVM, ejecute estos comandos:

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

Tenga en cuenta que estos comandos pueden tardan unos minutos en completarse.

Después de que adVM se reinicie, vuelva a conectarse a la máquina virtual de adVM.

Conectarse a la máquina virtual del controlador de dominio mediante las credenciales del dominio

  1. En el Azure Portal, haga clic en Grupos de recursos ><en el nombre del nuevo grupo>> de recursos adVM > Connect.

  2. Ejecute el archivo adVM.rdp que se descarga y luego haga clic en Conectar.

  3. En Seguridad de Windows, haga clic en Usar otra cuenta. En Nombre de usuario, escriba **CORP**<ADMIN_NAME>.

  4. En Contraseña, escriba la contraseña de la cuenta ADMIN_NAME y luego haga clic en Aceptar.

  5. Cuando se le pregunte, haga clic en .

  6. Desde el escritorio, abra un símbolo del sistema de Windows PowerShell con el nivel de administrador y ejecute el siguiente comando:

    Add-WindowsFeature RSAT-ADDS-Tools
    

Este es el resultado de la fase 1.

Fase 1 del entorno de desarrollo y pruebas de Exchange en los servicios de infraestructura de Azure.

Fase 2: Creación de la máquina virtual de Exchange

En esta fase, creará una máquina virtual de Exchange en la red virtual EXSrvrVNet y la hará miembro del dominio CORP.

Para crear la máquina virtual de Exchange con Azure PowerShell, inicie sesión primero en Azure con su cuenta de Azure desde el símbolo del sistema de Windows PowerShell (si es necesario).

Connect-AzAccount

Debe elegir un nombre DNS único global para la máquina virtual de exVM. Debe elegir un nombre DNS único global que contenga solo letras minúsculas y números. Puede realizar esta acción con los siguientes comandos de PowerShell:

$vmDNSName="<DNS name to test>"
$rgName="<resource group name>"
$locName=(Get-AZResourceGroup -Name $rgName).Location
Test-AZDnsAvailability -DomainQualifiedName $vmDNSName -Location $locName

Si aparece "True", el nombre propuesto es único globalmente.

Después, rellene los valores de las variables y ejecute el bloqueo resultante en el símbolo del sistema de 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

Nota:

Este bloque de comandos usa una cuenta de almacenamiento estándar creada en la fase 1 para reducir los costes en este entorno de desarrollo y pruebas. Para un servidor exchange de producción, debe usar una cuenta de almacenamiento Premium.

Desde el Portal de Azure, conéctese a la máquina virtual exVM con las credenciales de la cuenta de administrador local.

Luego tiene que unir la exVM al dominio de Windows AD con estos comandos en un símbolo del sistema de Windows PowerShell.

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

Recuerde que debe indicar las credenciales de la cuenta de dominio después de escribir el comando Add-Computer. Use la cuenta corp\<ADMIN_NAME> y la contraseña.

Este es el resultado de la fase 2.

El entorno de desarrollo y pruebas de Exchange completado en los servicios de infraestructura de Azure.

Fase 3: Configuración de Exchange

En esta fase, configurará Exchange en exVM y probará la entrega de correo entre dos buzones.

Preparar Windows Server AD

  1. En el símbolo del sistema Windows PowerShell del equipo local, ejecute el siguiente comando:

    Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
    
  2. Anote o copie el nombre DNS completo de la presentación del comando. Este es el nombre de DNS de Internet que corresponde a la máquina virtual exVM. Necesitará este valor más adelante.

  3. Si es necesario, conéctese a la máquina virtual adVM con el Azure Portal mediante la cuenta corp\<ADMIN_NAME> y la contraseña.

  4. Ejecute los siguientes comandos en el símbolo del sistema de Windows PowerShell:

    Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
    
  5. Cierre la sesión de escritorio remoto con adVM.

Instalación de Exchange

  1. Conéctese a la máquina virtual exVM con el Azure Portal mediante la cuenta corp\<ADMIN_NAME> y la contraseña.

  2. Desde exVM, abra un símbolo del sistema de Windows PowerShell con el nivel de administrador y ejecute los siguientes 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
    
    
  3. Conéctese a la máquina virtual exVM con el Azure Portal mediante la cuenta corp\<ADMIN_NAME> y la contraseña.

  4. En Administrador de servidores, haga clic en Servidor Local. En las Propiedades de exVM, haga clic en la opción Activada para Configuración de seguridad mejorada de IE. En Configuración de seguridad mejorada de Internet Explorer, haga clic en la opción Desactivada para administradores y para usuarios, y luego haga clic en Aceptar.

  5. En la pantalla Inicio, haga clic en Internet Explorer y luego descargue Unified Communications Managed API 4.0 Runtime desde https://www.microsoft.com/download/details.aspx?id=34992. Cuando aparezca el mensaje, haga clic en Ejecutar.

  6. Cuando aparezca el programa de instalación de Microsoft Unified Communications Managed API 4.0, Runtime, haga clic en Siguiente.

  7. Haga clic en He leído y acepto los términos de licencia y, a continuación, en Instalar. En la página Instalación completada, haga clic en Finalizar.

  8. En Internet Explorer, descargue la versión más reciente de Exchange. Para obtener más información, consulte Novedades para Exchange Server.

  9. Haga clic en Guardar para almacenar el archivo ISO en la carpeta Descargas.

  10. Haga clic en Abrir carpeta, haga clic con el botón derecho en el archivo ISO de Exchange y luego haga clic en Montar.

  11. Desde un símbolo del sistema de Windows PowerShell con el nivel de administrador, ejecute lo siguiente:

Nota:

  • El modificador /IAcceptExchangeServerLicenseTerms anterior no funcionará a partir de las actualizaciones acumulativas (CU) de septiembre de 2021. Ahora debe usar /IAcceptExchangeServerLicenseTerms_DiagnosticDataON o /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF para instalaciones desatendidas y con scripts.

  • Los ejemplos siguientes usan el modificador /IAcceptExchangeServerLicenseTerms_DiagnosticDataON. Depende de usted cambiar el modificador a /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF.

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

Espere a que finalice la instalación de Exchange, que puede tardar un poco, y a que exVM se reinicie.

Agregar dos buzones de correo al servidor Exchange

  1. Conéctese a la máquina virtual exVM con el Azure Portal mediante la cuenta corp\<ADMIN_NAME> y la contraseña.

  2. En la pantalla Inicio, escriba Exchange y luego haga clic en Shell de administración de Exchange.

  3. Copie los siguientes comandos en el Bloc de notas, inserte el nombre DNS de Internet correspondiente a la máquina virtual exVM en la variable $dnsName y luego copie y pegue los comandos resultantes en el Shell de administración de 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. Anote la contraseña especificada en un lugar seguro. Luego ejecute estos comandos para crear dos buzones de correo.

    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"
    

Probar la entrega de correo entre buzones

  1. Desde el explorador del equipo local, acceda al sitio web https://< Nombre DNS de internet de la máquina> virtual exVM/owa. Cuando aparezca una página de error sobre el certificado de seguridad del sitio web, haga clic en Ir a este sitio web. En la página de inicio de sesión de Outlook, use el nombre de cuenta de corp\chris con la contraseña correspondiente.

  2. Cuando se le pida que indique el idioma y la zona horaria, seleccione el valor adecuado para cada opción y luego haga clic en Guardar.

  3. En la bandeja de entrada de Chris Ashton, haga clic en Nuevo. En Para, escriba janet y luego haga clic en Buscar en el directorio. En Asunto, escriba Mensaje de prueba y luego haga clic en Enviar.

  4. Haga clic en el icono de usuario que hay en la parte superior derecha de la página web Correo y luego haga clic en Cerrar sesión.

  5. En la página de inicio de sesión de Outlook, use el nombre de cuenta de corp\janet con la contraseña correspondiente. Cuando se le pida que indique el idioma y la zona horaria, seleccione el valor adecuado para cada opción y luego haga clic en Guardar.

  6. Compruebe que la bandeja de entrada contenga el mensaje de prueba de Chris Ashton. Haga clic en él y luego en Responder a todos. En el cuerpo del mensaje, escriba Contestado y luego haga clic en Enviar.

  7. Haga clic en el icono de usuario que hay en la parte superior derecha de la página web Correo y luego haga clic en Cerrar sesión.

  8. En la página de inicio de sesión de Outlook, use el nombre de cuenta de corp\chris con la contraseña correspondiente. Compruebe que el mensaje de correo electrónico de respuesta enviado desde el usuario Janet esté en la bandeja de entrada.

Ahora está listo para probar las características o aplicaciones de Exchange.

Detener e iniciar las máquinas virtuales

Las máquinas virtuales de Azure implican un costo constante cuando se están ejecutando. Para ayudar a minimizar el costo del entorno de desarrollo y pruebas de Exchange, use estos comandos para detener las máquinas virtuales:

$rgName="<your resource group name>"
Stop-AZVM -Name exVM -ResourceGroupName $rgName -Force
Stop-AZVM -Name adVM -ResourceGroupName $rgName -Force

Para volver a iniciarlas, use estos comandos:

$rgName="<your resource group name>"
Start-AZVM -Name adVM -ResourceGroupName $rgName
Start-AZVM -Name exVM -ResourceGroupName $rgName

Consulte también

Solución de problemas de conectividad SMTP saliente en Azure

Implementar nuevas instalaciones de Exchange

Requisitos del sistema de Exchange Server

Exchange Server

Novedades de Exchange Server

Guías del entorno de pruebas de adopción de la nube (TLG)