Ti è mai capitato di iniziare a digitare un nome nel campo "A" e vedere Outlook completarlo automaticamente in modo perfetto? In un ambiente aziendale, quella "magia" spesso deriva dall’Elenco indirizzi globale di Exchange Server, ma quando è necessario lavorare tra diverse organizzazioni Exchange o tenant Microsoft 365, Outlook non è più in grado di individuare “magicamente” tutti i destinatari.
Punti di forza
- Il sito Elenco globale degli indirizzi (GAL) funge da rubrica aziendale integrata dei destinatari con funzionalità di posta elettronica, quali utenti, gruppi e liste di distribuzione. Ogni singola organizzazione Exchange o tenant Microsoft 365 dispone in genere di una propria Elenco indirizzi globale.
- Quando le società partner o le organizzazioni coinvolte in una fusione utilizzano organizzazioni Exchange distinte Per quanto riguarda i tenant di Microsoft 365, ciascuno avrà il proprio Elenco indirizzi globale separato. Gli utenti non vedranno automaticamente le persone presenti nella rubrica dell'altra organizzazione.
- La soluzione più diffusa è Sincronizzazione dell'elenco indirizzi globale, che trasferisce le voci dell'elenco degli indirizzi da un ambiente all'altro, in modo che gli utenti di ciascuna organizzazione possano individuare e contattare le persone dell'altra organizzazione. CB Global Address List Sync, un'estensione per CB Exchange Server Sync, esegue questa operazione automaticamente e funziona in modo silenzioso in background.
Pubblicato per la prima volta nel giugno 2023, aggiornato l'ultima volta nel settembre 2026
Che cos’è la Lista indirizzi globale (GAL)?
La Global Address List (GAL) è la directory organizzativa centrale di Microsoft Exchange. Contiene i destinatari con funzionalità di posta elettronica che gli utenti possono cercare e selezionare quando scrivono un'e-mail o pianificano riunioni.
A seconda della configurazione dell'organizzazione, la GAL può includere:
- Caselle di posta degli utenti
- Contatti e-mail
- Gruppi di Microsoft 365 e gruppi di sicurezza con funzionalità di posta elettronica
- Liste di distribuzione
- Caselle postali condivise
- Locali e attrezzature, quali sale riunioni o proiettori
Come funziona una rubrica globale?
Il GAL è costituito dalle informazioni relative ai destinatari e alle directory gestite in Microsoft Exchange Server o Microsoft 365.
In un'implementazione on-premises di Exchange, gran parte di queste informazioni viene archiviata e sincronizzata tramite Active Directory. In Microsoft 365, i dati dei destinatari vengono gestiti in Microsoft Entra ID e Exchange Online; le organizzazioni ibride possono sincronizzare i dati della directory da Active Directory on-premises al cloud.
Quando qualcuno invia un’e-mail o crea un invito a una riunione, Outlook può effettuare una ricerca nella GAL per convertire il nome di una persona in un indirizzo e-mail.
Per gli utenti desktop Outlook in modalità Exchange con cache, la GAL è spesso disponibile tramite una rubrica offline (OAB). L'OAB è una copia locale scaricata dei dati dell'elenco degli indirizzi che consente agli utenti di sfogliare ed effettuare ricerche nella rubrica anche quando Outlook dispone di una connettività limitata. Poiché l'OAB viene aggiornato a intervalli prestabiliti, i dettagli dei contatti modificati di recente potrebbero non apparire immediatamente nel client Outlook desktop dell'utente.
Dove visualizzare l'elenco globale degli indirizzi
Per controllare l'Elenco indirizzi globale dell'organizzazione in Microsoft Outlook, è sufficiente seguire i seguenti passaggi:
- Avviare Microsoft Outlook.
- Apri un Nuova e-mail finestra.

- Clicca su A oppure usa la scorciatoia Ctrl+Maiusc+B.

- Selezionare l'opzione Elenco indirizzi globale o Elenco indirizzi globale predefinito.

Ecco fatto! È proprio così semplice.
Quando è necessaria la sincronizzazione GAL?
Le organizzazioni separate dispongono in genere di GAL distinti, anche se sono collegate tra loro. Gli utenti di un’organizzazione non vedranno automaticamente i destinatari presenti nella rubrica dell’altra organizzazione. Ciò accade più spesso di quanto si possa pensare: fusioni, partnership o ambienti Exchange multipli distribuiti tra filiali o società controllate.
L'accesso a più di un GAL non è supportato. Per garantire la visibilità tra le organizzazioni, gli amministratori possono sincronizzare le voci della directory, solitamente creando e gestendo oggetti "contatto" o "destinatario" con funzionalità di posta in ciascun ambiente.
Esaminiamo un paio di scenari in cui ciò potrebbe rendersi necessario:
- Fusioni e acquisizioni - Se l'azienda A si sta fondendo con l'azienda B, la sincronizzazione degli elenchi di indirizzi globali di entrambe le aziende semplificherà la vita agli utenti finali, poiché tutte le informazioni di contatto saranno ora comuni a entrambe le strutture. Per saperne di più sulle sfide del server Exchange negli scenari di fusione e acquisizione, consultate il seguente documento post sul blog.
- Partner – Le collaborazioni comportano un naturale aumento delle interazioni tra i due team. La sincronizzazione di un GAL con un altro permette a tutti di cercare i propri colleghi in Outlook fin dal primo giorno, invece di dover chiedere in giro per trovare i contatti.
- Server multipli Microsoft Exchange – Le aziende che operano all’interno dello stesso gruppo possono essere collegate ai propri ambienti Exchange, cosa che avviene comunemente, ad esempio, quando le filiali sono distribuite in diversi paesi. Immaginiamo che il gruppo aziendale A abbia diverse filiali in tutto il mondo, ciascuna con la propria infrastruttura IT e diversi server Exchange. In tal caso, se un dipendente della filiale europea viene trasferito alla filiale nordamericana dello stesso gruppo aziendale A, anche la sincronizzazione GAL può rivelarsi utile.
Sincronizzazione GAL con CB Exchange Server Sync
CB Exchange Server Sync è il nostro strumento di sincronizzazione per Microsoft Exchange Server. Mantiene sincronizzati e-mail, calendari, contatti, note, attività e cartelle tra più ambienti Exchange, funzionando silenziosamente in background senza che nessuno debba occuparsene.
Per le organizzazioni che necessitano inoltre di sincronizzare i propri elenchi globali di indirizzi tra tali ambienti, CB Global Address List Sync è il componente aggiuntivo realizzato appositamente per quel compito.
L'installazione è incredibilmente semplice, quindi non dovrai perdere tempo a capire come mettere in funzione questa soluzione. Oltre al fatto che il software stesso è intuitivo, abbiamo anche Documentazione online e il nostro Portale di supporto disponibili per voi.
Siete pronti a iniziare la sincronizzazione dell'Elenco indirizzi globale? Entrare in contatto con noi, e ti porteremo lì!
public void Execute(IServiceProvider serviceProvider)
{
var tracingService = (ITracingService) serviceProvider.GetService(typeof(ITracingService));
var context = (IPluginExecutionContext) serviceProvider.GetService(typeof(IPluginExecutionContext));
var serviceFactory = (IOrganizationServiceFactory) serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var service = serviceFactory.CreateOrganizationService(context.UserId);
if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
{
return;
}
var entity = (Entity) context.InputParameters["Target"];
var isLoginEnabled = HasLoginEnabled(entity);
se (isLoginEnabled == false)
{
return;
}
try
{
var emailAddress = (string) entity["emailaddress1"];
var contactsWithSameEmailAddress = GetContactsByEmailAddress(service, entity.Id, emailAddress);
if (contactsWithSameEmailAddress.Entities.Count > 0)
{
var hasLoginEnabled = HasLoginEnabled(contactsWithSameEmailAddress.Entities[0]);
se (hasLoginEnabled)
{
throw new InvalidPluginExecutionException(OperationStatus.Failed,
"L'utente esiste già. Provare a registrarsi con un altro indirizzo e-mail o accedere all'account esistente.");
}
var mergeRequest = new MergeRequest
{
SubordinateId = entity.Id,
Target = new EntityReference("contact", contactsWithSameEmailAddress.Entities[0].Id),
UpdateContent = GetUpdateContent(entità)
};
var _ = (MergeResponse) service.Execute(mergeRequest);
entity[CustomAttributeName] = true;
service.Update(entity);
}
else
{
var domain = emailAddress.Split('@')[1];
if (_publicDomains.Contains(domain))
{
SendEmailAndDeactivateContact(service, tracingService, entity);
}
altrimenti
{
var contactsWithSameDomain = GetContactsByDomain(service, entity.Id, domain);
if (contactsWithSameDomain.Entities.Count > 0)
{
entity["parentcustomerid"] = contactsWithSameDomain.Entities[0]["parentcustomerid"];
service.Update(entity);
}
altrimenti
{
SendEmailAndDeactivateContact(service, tracingService, entity);
}
}
}
}
catch (FaultException ex)
{
throw new InvalidPluginExecutionException("An error occurred in ContactPostOperationPlugin.", ex);
}
}
Chiudere il codiceSull'autore

Da Ana Neto, consulente tecnico dell'Connecting Software.
“Lavoro come ingegnere informatico dal 1997 e, più di recente, ho scoperto la passione per la scrittura e i discorsi in pubblico. Avete domande o commenti su questo articolo? Mi farebbe molto piacere ricevere il vostro feedback: lasciate un commento qui sotto!"
