Share via


Ambienti di sviluppo/test di Exchange in Azure

Questo argomento illustra come creare una distribuzione di sviluppo/test di Exchange 2016 o Exchange 2019 in Microsoft Azure. Di seguito è riportata la configurazione risultante.

Ambiente di sviluppo/test di Exchange completato nei servizi dell'infrastruttura di Azure.

Questa configurazione comprende un server di Exchange singolo e un controller di dominio di Windows Server Active Directory (AD) in una subnet di una rete virtuale di Azure. Questo fornisce una base e un punto di partenza comune da cui è possibile dimostrare Exchange e sviluppare applicazioni Exchange Server. Questa configurazione è valida soltanto per le e-mail interne e per testare le applicazione sul server di Exchange. Non vengono configurati flussi di posta elettronica.

Le fasi principali della configurazione dell'ambiente di sviluppo e testing sono tre:

  1. Configurare la rete virtuale e il controller di dominio (adVM).
  2. Aggiungere il server Exchange (exVM).
  3. Configurare Exchange.

Se non si ha già una sottoscrizione di Azure, è possibile iscriversi a una versione di valutazione gratuita di Azure. Se si dispone di una sottoscrizione MSDN o Visual Studio, vedere Credito Azure mensile per sottoscrittori di Visual Studio.

Nota

Poiché Exchange apporta modifiche allo schema in Windows Server AD, questa configurazione non può usare Microsoft Entra Domain Services.

Fase 1: Implementare la rete virtuale e un controller di dominio

È possibile creare una nuova rete virtuale Azure e con un controller di dominio con Azure PowerShell. Eseguire i seguenti comandi di PowerShell da un prompt dei comandi di Windows PowerShell o in PowerShell Integrated Script Environment (ISE). Se Azure PowerShell non è stato installato, vedere Panoramica dei cmdlet di Azure PowerShell.

Nota

Questi comandi sono compatibili con Azure PowerShell 1.0.0 e versioni successive.

  1. Accedere all'account Azure.

    Connect-AzAccount
    
  2. Ottenere il nome della sottoscrizione utilizzando il comando seguente.

    Get-AZSubscription | Sort-Object Name | Select-Object Name
    
  3. Impostare la sottoscrizione di Azure con questi comandi. Impostare la variabile $subscrName sostituendo tutti gli elementi all'interno delle virgolette, inclusi i < caratteri e > , con il nome corretto.

    $subscrName="<subscription name>"
    
    Select-AzSubscription -SubscriptionName $subscrName
    
  4. Creare un nuovo gruppo di risorse. Per definire un nome del gruppo di risorse univoco, utilizzare questo comando per creare un elenco di gruppi di risorse esistenti.

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

    Creare il nuovo gruppo di risorse con questi comandi. Impostare le variabili sostituendo tutto il testo racchiuso tra virgolette, compresi i caratteri < e >, con i nomi corretti.

    $rgName="<resource group name>"
    
    $locName="<location name, such as West US>"
    
    New-AZResourceGroup -Name $rgName -Location $locName
    
  5. Le macchine virtuali basate su Resource Manager richiedono un account di archiviazione basato su Resource Manager. È necessario selezionare un nome univoco globale per l'account di archiviazione che contenga solo numeri e lettere minuscole. È possibile utilizzare questo comando per creare un elenco degli account di archiviazione esistenti.

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

    Utilizzare questo comando per verificare se un nome dell'account di archiviazione proposto è univoco.

    Get-AZStorageAccountNameAvailability "<proposed name>"
    

    Creare un nuovo account di archiviazione per il nuovo ambiente di testing con questi comandi.

    $saName = "<storage account name>"
    
    New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName
    
  6. Creare la Rete virtuale di Azure EXSrvrVnet che ospiterà la subnet EXSrvrSubnet e la proteggerà con un gruppo di sicurezza di rete.

    $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. Creare la macchina virtuale adVM in Azure. adVM è un controller di dominio per il dominio corp.contoso.com Windows Server AD e un server DNS per le macchine virtuali della rete virtuale EXSrvrVnet.

    Prima di tutto, inserire il nome del gruppo di risorse, la posizione di Azure e il nome dell’account di archiviazione, quindi eseguire questi comandi al prompt dei comandi di Azure PowerShell nel computer locale per creare una macchina virtuale Azure per 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
    

    Verranno richiesti un nome utente e una password. Questo articolo farà riferimento a questo nome utente come ADMIN_NAME. Utilizzare una password complessa e annotare entrambi in una posizione sicura.

    Nota: la password specificata non può essere "pass@word1". Deve avere una lunghezza compresa tra 8 e 123 caratteri e deve soddisfare almeno 3 dei requisiti di complessità delle password seguenti:

    • Contiene una lettera maiuscola
    • Contiene una lettera minuscola
    • Contiene una cifra numerica
    • Contiene un carattere speciale

Per creare la macchina virtuale, Azure potrebbe impiegare alcuni minuti.

Connettersi a una macchina virtuale controller di dominio utilizzando le credenziali dell'account amministratore locale

  1. Nel portale di Azure fare clic su Gruppi ><di risorse nome>> gruppo di risorse adVM > Connect.

  2. Eseguire il file adVM.rdp che viene scaricato e quindi fare clic su Connetti.

  3. In Protezione di Windows, fare clic su Utilizza un altro account. In Nome utente digitare **adVM**<ADMIN_NAME>.

  4. In Password, digitare la password dell'account ADMIN_NAME, quindi fare clic su OK.

  5. Quando viene richiesto, fare clic su .

  6. Aggiungere un disco dati aggiuntivo come nuovo volume con la lettera di unità F: con questi comandi a livello di amministratore Windows PowerShell prompt dei comandi in 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. Configurare adVM come controller di dominio e server DNS per il dominio corp.contoso.com. Eseguire questi comandi al prompt dei comandi di Windows PowerShell a livello di amministratore in adVM.

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

Si tenga presente che il completamento di questi comandi potrebbe richiedere alcuni minuti.

Dopo il riavvio di adVM, riconnettersi al computer virtuale adVM.

Connettersi a un computer virtuale controller di dominio con le credenziali di dominio

  1. Nel portale di Azure fare clic su Gruppi ><di risorse con il nome del nuovo gruppo>> di risorse adVM > Connect.

  2. Eseguire il file adVM.rdp che viene scaricato e quindi fare clic su Connetti.

  3. In Protezione di Windows, fare clic su Utilizza un altro account. In Nome utente digitare **CORP**<ADMIN_NAME>.

  4. In Password, digitare la password dell'account ADMIN_NAME, quindi fare clic su OK.

  5. Quando viene richiesto, fare clic su .

  6. Dal desktop, aprire un prompt dei comandi di Windows PowerShell a livello di amministratore ed eseguire il comando seguente:

    Add-WindowsFeature RSAT-ADDS-Tools
    

Di seguito viene mostrato il risultato della fase 1.

Fase 1 dell'ambiente di sviluppo/test di Exchange nei servizi dell'infrastruttura di Azure.

Fase 2: Creare la macchina virtuale di Exchange

In questa fase si crea una macchina virtuale di Exchange nella rete virtuale EXSrvrVNet e la si rende membro del dominio CORP.

Per creare la macchina virtuale di Exchange con Azure PowerShell, accedere prima ad Azure con l'account Azure dal prompt dei comandi Windows PowerShell (se necessario).

Connect-AzAccount

È necessario determinare un nome DNS univoco globale per la macchina virtuale exVM. È necessario selezionare un nome DNS univoco globale che contiene solo lettere minuscole e numeri. È possibile effettuare questa operazione con i comandi di PowerShell seguenti:

$vmDNSName="<DNS name to test>"

$rgName="<resource group name>"

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

Test-AZDnsAvailability -DomainQualifiedName $vmDNSName -Location $locName

Se viene visualizzato "True", il nome proposto è univoco a livello globale.

Successivamente, inserire i valori delle variabili ed eseguire il blocco restituito nel prompt di 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

Il blocco di comando utilizza un account di archiviazione standard creato durante la fase 1 con lo scopo di ridurre i costi per l'ambiente di sviluppo/testing. Per un server Exchange di produzione, è necessario usare un account di archiviazione Premium.

Dal portale di Azure, connettersi alla macchina virtuale exVM utilizzando le credenziali dell'account amministratore locale.

Successivamente, aggiungere exVM al dominio di Windows AD immettendo questi comandi al prompt dei comandi di Windows PowerShell.

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

Tenere presente che dopo aver immesso il comando Add-Computer è necessario fornire le credenziali di un account di dominio. Usare l'account CORP\<ADMIN_NAME> e la password.

Di seguito viene mostrato il risultato della fase 2.

Ambiente di sviluppo/test di Exchange completato nei servizi dell'infrastruttura di Azure.

Fase 3: Configurare Exchange

In questa fase si configura Exchange in exVM e si testa il recapito della posta tra due cassette postali.

Preparare Windows Server AD

  1. Al prompt dei comandi Windows PowerShell nel computer locale eseguire il comando seguente:

    Write-Host (Get-AZPublicIpaddress -Name "exVM-PublicIP" -ResourceGroup $rgName).DnsSettings.Fqdn
    
  2. Annotare o copiare il nome DNS completo visualizzato nel comando. Si tratta del nome DNS Internet della macchina virtuale exVM. Questo valore sarà necessario in un secondo momento.

  3. Se necessario, connettersi alla macchina virtuale adVM con il portale di Azure usando l'account CORP\<ADMIN_NAME> e la password.

  4. Al prompt dei comandi di Windows PowerShell eseguire il comando seguente:

    Get-ADForest | Set-ADForest -UPNSuffixes @{Add="<DNS Name of Exchange>"}
    
  5. Chiudere la sessione desktop remoto con adVM.

Installare Exchange

  1. Connettersi alla macchina virtuale exVM con il portale di Azure usando l'account CORP\<ADMIN_NAME> e la password.

  2. Da exVM, aprire un prompt dei comandi di Windows PowerShell a livello di amministratore ed eseguire i comandi seguenti:

    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. Connettersi alla macchina virtuale exVM con il portale di Azure usando l'account CORP\<ADMIN_NAME> e la password.

  4. Da Gestione server, fare clic su Server locale. Nelle proprietà di exVM, fare clic su Attiva per Configurazione sicurezza avanzata IE. In Configurazione sicurezza avanzata IE, fare clic su Disattiva per Amministratori e Utenti, quindi fare clic su OK.

  5. Dalla schermata Start, fare clic su Internet Explorer, quindi scaricare Unified Communications Managed API 4.0 Runtime dal sito https://www.microsoft.com/download/details.aspx?id=34992. Quando viene richiesto, fare clic su Esegui.

  6. Quando viene richiesto nella procedura di configurazione di Microsoft Unified Communications Managed API 4.0 Runtime, fare clic su Avanti.

  7. Fare clic su Ho letto e accettato le condizioni di licenza, quindi fare clic su Installa. Nella pagina Installazione completata fare clic su Fine.

  8. Da Internet Explorer scaricare la versione più recente di Exchange. Per altre informazioni, vedere Aggiornamenti per Exchange Server.

  9. Fare clic su Salva per memorizzare il file ISO nella cartella di download.

  10. Fare clic su Apri cartella, fare clic con il pulsante destro del mouse sul file ISO di Exchange, quindi selezionare Monta.

  11. Da un prompt dei comandi di Windows PowerShell a livello amministrativo su exVM, eseguire il comando seguente:

Nota

  • L'opzione /IAcceptExchangeServerLicenseTerms precedente non funzionerà a partire dall'aggiornamento cumulativo di settembre 2021. È ora necessario usare /IAcceptExchangeServerLicenseTerms_DiagnosticDataON o /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF per le installazioni automatica e tramite script.

  • Gli esempi seguenti usano l'opzione /IAcceptExchangeServerLicenseTerms_DiagnosticDataON. È necessario modificare l'opzione in /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF.

e:

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

Attendere che termini la procedura di configurazione di Exchange (potrebbe richiedere del tempo), quindi riavviare exVM.

Aggiungere due cassette postali al server di Exchange

  1. Connettersi alla macchina virtuale exVM con il portale di Azure usando l'account CORP\<ADMIN_NAME> e la password.

  2. Nella schermata Start, digitare Exchange, quindi fare clic su Exchange Management Shell.

  3. Copiare i comandi seguenti sul Blocco note, inserire il nome DNS Internet della macchina virtuale exVM per la variabile $dnsName, quindo copiare e incollare i comandi restituiti in Exchange Management Shell.

    $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. Registrare la password specificata in un luogo sicuro. Successivamente, eseguire questi comandi per creare due cassette postali.

    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"
    

Testare il recapito delle e-mail tra le cassette postali

  1. Dal browser nel computer locale accedere al sito Web https://< Nome DNS Internet della macchina> virtuale exVM/owa. Quando viene visualizzata una pagina di errore relativa al certificato di sicurezza del sito Web, fare clic su Continuare con il sito Web. Nella pagina di accesso a Outlook, utilizzare il nome account corp\chris e la relativa password.

  2. Quando viene richiesto di specificare la lingua e il fuso orario, selezionare il valore adeguato per entrambi, quindi fare clic su Salva.

  3. Dalla Posta in arrivo di Chris Ashton, fare clic su Nuovo. In A, digitare janet e fare clic su Cerca nella directory. In Oggetto, digitare Messaggio di prova, quindi fare clic su Invia.

  4. Fare clic sull'icona dell'utente nella parte in alto a destra della pagina Web di Posta, quindi fare clic su Disconnetti.

  5. Nella pagina di accesso a Outlook, utilizzare il nome account corp\janet e la relativa password. Quando viene richiesto di specificare la lingua e il fuso orario, selezionare il valore adeguato per entrambi, quindi fare clic su Salva.

  6. Verificare che nella posta in arrivo sia presente il messaggio di prova inviato da Chris Ashton. Selezionarlo, quindi fare clic su Rispondi a tutti. Nel corpo del messaggio, digitare Risposta recapitata, quindi fare clic su Invia.

  7. Fare clic sull'icona dell'utente nella parte in alto a destra della pagina Web di Posta, quindi fare clic su Disconnetti.

  8. Nella pagina di accesso a Outlook, utilizzare il nome account corp\chris e la relativa password. Verificare che l'e-mail di risposta inviata da Janet sia presente nella posta in arrivo.

È ora possibile testare le funzionalità o le applicazioni di Exchange.

Interrompere e avviare le macchine virtuali

Le macchine virtuali di Azure in esecuzione comportano un costo. Per ridurre al minimo il costo dell'ambiente di sviluppo/test di Exchange, usare questi comandi per arrestare le macchine virtuali:

$rgName="<your resource group name>"

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

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

Per avviarle nuovamente, utilizzare questi comandi:

$rgName="<your resource group name>"

Start-AZVM -Name adVM -ResourceGroupName $rgName

Start-AZVM -Name exVM -ResourceGroupName $rgName

Vedere anche

Risolvere i problemi di connettività SMTP in uscita in Azure

Distribuzione di nuove installazioni di Exchange

Requisiti di sistema per Exchange Server

Exchange Server

Novità di Exchange Server

Guida al lab test (TLG) per adozione del cloud