L’errore “Accesso negato” durante la connessione a Exchange Online PowerShell può avere cause molto diverse rispetto a qualche anno fa. Se il tuo script utilizza ancora `New-PSSession` con Basic Authentication, il primo intervento non consiste nel riabilitare WinRM o autenticazione legacy: quel modello di connessione è ormai superato. Nel 2026 l’amministrazione di Exchange Online utilizza il modulo ExchangeOnlineManagement V3 e connessioni basate su API REST.
Questa guida è dedicata al troubleshooting di Connect-ExchangeOnline e degli errori di autorizzazione. Per l’uso quotidiano dei comandi amministrativi, consulta anche i 10 cmdlet Exchange Online fondamentali.
Se stai ancora usando New-PSSession, fermati qui
Il vecchio approccio usava una sessione remota verso `outlook.office365.com/powershell-liveid` con credenziali utente e `-Authentication Basic`. Oggi non deve essere la procedura standard per collegarsi a Exchange Online.
# ESEMPIO LEGACY - NON USARE COME PROCEDURA CORRENTE
$Credential = Get-Credential
$Session = New-PSSession `
-ConfigurationName Microsoft.Exchange `
-ConnectionUri https://outlook.office365.com/powershell-liveid/ `
-Credential $Credential `
-Authentication Basic `
-AllowRedirection
Import-PSSession $Session
Microsoft ha sostituito le connessioni remote PowerShell basate su Basic Authentication/WinRM con il percorso REST del modulo EXO V3. Se il tuo ambiente contiene ancora client o applicazioni che dipendono da autenticazione legacy, la verifica va gestita separatamente: vedi la guida Nexsys su come disabilitare l’autenticazione legacy in Exchange Online.
1. Verifica PowerShell e la versione di ExchangeOnlineManagement
Prima di aggiornare il modulo alla cieca, controlla la versione della shell e le versioni EXO installate:
$PSVersionTable.PSVersion
Get-InstalledModule ExchangeOnlineManagement -AllVersions
Microsoft indica ExchangeOnlineManagement 3.10.1 come release corrente a luglio 2026. Se usi PowerShell 7, le versioni 3.10.x richiedono PowerShell 7.6 o successivo. Questo requisito non va confuso con Windows PowerShell 5.1, che segue una matrice di compatibilità differente.
Per installare il modulo per il solo utente corrente:
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
Per aggiornare un’installazione esistente:
Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
Attenzione alle dipendenze Le connessioni REST su Windows richiedono PowerShellGet e PackageManagement. Versioni preview o dipendenze incoerenti possono generare errori di caricamento o connessione. |
2. Esegui una connessione interattiva moderna
Per un amministratore che accede in modo interattivo, importa il modulo e usa `Connect-ExchangeOnline` con l’UPN amministrativo:
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline `
-UserPrincipalName admin@contoso.it `
-ShowBanner:$false
Il flusso usa autenticazione moderna e può completare MFA o Single Sign-On. Non usare `-Credential` come soluzione per un account protetto da MFA: il vecchio copy della pagina associava questa opzione all’MFA, ma non è il modello corretto.
Se vuoi approfondire la protezione degli accessi amministrativi, la pagina Nexsys sulla Multi-Factor Authentication copre l’intento MFA senza sovrapporsi al troubleshooting di Exchange Online PowerShell.
Sui tenant recenti di default l'autenticazione è già impostata per utilizzare l'MFA. Ecco quindi che in caso ci si voglia connettere ad un tenant 365 con MA abilitato potrei incorrere in questo messaggio di errore:
New-PSSession : [outlook.office365.com] Connessione al server remoto outlook.office365.com non riuscita con il seguente messaggio di errore: Accesso negato.

3. Verifica subito che la sessione sia realmente operativa
Dopo la connessione, esegui un cmdlet semplice:
Get-AcceptedDomain
Se il comando restituisce i domini accettati del tenant, autenticazione, importazione dei cmdlet e autorizzazione di base stanno funzionando. Se il login si completa ma il cmdlet viene negato, il problema è più probabilmente legato a RBAC o ai privilegi assegnati all’account.
4. Se Connect-ExchangeOnline restituisce ancora Accesso negato
A questo punto non serve ripetere installazioni casuali. Procedi per livelli.
Controlla che l’account sia abilitato a Exchange Online PowerShell
Microsoft espone oggi la proprietà `EXOModuleEnabled`. Da una sessione amministrativa funzionante verifica l’utente interessato:
Get-User -Identity "admin@contoso.it" |
Format-List EXOModuleEnabled
Se il valore è `False`, un amministratore autorizzato può riabilitare l’accesso:
Set-User -Identity "admin@contoso.it" -EXOModuleEnabled $true
Non applicare modifiche massive a tutti gli utenti: l’accesso PowerShell dovrebbe essere disponibile solo agli account che ne hanno una reale necessità operativa.
Controlla i ruoli Exchange e non usare Global Administrator come scorciatoia
Poter autenticarsi non significa poter eseguire qualsiasi cmdlet. Exchange Online applica RBAC: l’account deve avere ruoli coerenti con le attività da svolgere. Assegnare Global Administrator solo per eliminare un errore di PowerShell aumenta inutilmente il privilegio. Verifica invece il ruolo Exchange o il role group realmente necessario.
Controlla password, UPN e Conditional Access
Una password errata, un UPN non corretto, un’identità federata con provider non raggiungibile o una policy di Conditional Access possono impedire l’accesso. In presenza di errori AADSTS o di un blocco successivo all’autenticazione, analizza i sign-in log di Microsoft Entra prima di modificare il modulo Exchange.
Per una baseline più ampia sulle policy di identità, endpoint e protezione Microsoft 365, mantieni questo approfondimento separato dalla guida di troubleshooting e rimanda alla pagina Sicurezza Microsoft 365 per PMI.
Controlla WAM solo se l’errore è legato al flusso di autenticazione
Dalla versione 3.7.2 il modulo espone `-DisableWAM`. È una misura di troubleshooting per problemi specifici con Web Account Manager, non una best practice da applicare in modo permanente:
Connect-ExchangeOnline `
-UserPrincipalName admin@contoso.it `
-DisableWAM
5. PowerShell 7 su host senza browser: usa Device Code
Su PowerShell 7, se il sistema non dispone di un browser utilizzabile, puoi avviare il device flow:
Connect-ExchangeOnline -Device
Il comando restituisce un URL e un codice. L’autenticazione viene completata da un browser su un altro dispositivo, mantenendo il normale flusso Microsoft Entra.
6. Script unattended: non salvare username e password
Per automazioni, report schedulati o script non interattivi non usare credenziali utente memorizzate in chiaro. Exchange Online PowerShell supporta l’autenticazione app-only con Microsoft Entra application e certificato X.509.
Connect-ExchangeOnline `
-AppId "<APP-ID>" `
-CertificateThumbprint "<THUMBPRINT>" `
-Organization "tenant.onmicrosoft.com"
Lo scenario richiede configurazione dell’applicazione, permessi Exchange appropriati e gestione sicura del certificato. Per il parametro `Organization` Microsoft raccomanda il dominio primario `.onmicrosoft.com`.
Checklist rapida: errore Accesso negato in Exchange Online PowerShell
- Rimuovi dalle procedure operative New-PSSession + Basic Authentication.
- Verifica versione PowerShell e versione ExchangeOnlineManagement.
- Su PowerShell 7 con EXO 3.10.x usa PowerShell 7.6 o successivo.
- Connettiti con Connect-ExchangeOnline e autenticazione moderna.
- Esegui Get-AcceptedDomain come test della sessione.
- Verifica EXOModuleEnabled sull’account.
- Controlla RBAC e ruoli Exchange, evitando privilegi eccessivi.
- Analizza sign-in log e Conditional Access se l’identità viene bloccata.
- Usa -DisableWAM solo per troubleshooting WAM.
- Per automazioni unattended usa app-only authentication con certificato.
Exchange Online PowerShell non è solo troubleshooting
Una volta stabilita una sessione corretta puoi gestire mailbox, gruppi, permessi, mail flow e reporting. La guida 10 cmdlet Exchange Online per amministratori Microsoft 365 mantiene l’intento amministrativo, mentre questa pagina resta focalizzata esclusivamente sugli errori di connessione e autorizzazione.
Per chi deve consolidare queste competenze in modo strutturato, il corso Microsoft 365 Administration include gestione Exchange Online con PowerShell e troubleshooting amministrativo.
Exchange Online PowerShell continua a restituire Accesso negato?
Nexsys può verificare modulo, autenticazione, RBAC, Conditional Access e configurazione Microsoft 365.


