⚙️ Cosa fa lo script:
- Si connette a Azure AD, MSOnline, e Exchange Online.
- Controlla sync Azure AD attivo + ultimo tempo di sync.
- Verifica licenze disponibili e consumate.
- Controlla che i principali servizi cloud siano attivi.
- Lista utenti con MFA attivo o no.
- Mostra eventuali account bloccati.
📦 Requisiti
- Permessi: devi avere almeno Global Reader o Global Admin su Microsoft 365.
- Moduli installati: powershell
Install-Module MSOnline Install-Module AzureAD Install-Module ExchangeOnlineManagement
#Richiede i moduli AzureAD, MSOnline, ExchangeOnlineManagement
#Installali con: Install-Module -Name AzureAD, MSOnline, ExchangeOnlineManagement
#Connetti ai servizi
Write-Host “Connettendo ad Office 365…” -ForegroundColor Cyan
Connect-MsolService
Connect-AzureAD
Connect-ExchangeOnline -ShowBanner:$false
#1. Verifica sincronizzazione Azure AD
Write-Host “`n[1] Stato sincronizzazione Azure AD Connect:” -ForegroundColor Yellow
Get-MsolCompanyInformation | Select-Object DirectorySynchronizationEnabled, LastDirSyncTime
#2. Verifica licenze disponibili e assegnate
Write-Host “`n[2] Stato Licenze Office 365:” -ForegroundColor Yellow
Get-MsolAccountSku | Format-Table AccountSkuId, ActiveUnits, ConsumedUnits
#3. Verifica stato dei principali servizi Office 365
Write-Host “`n[3] Stato Servizi Office 365 (Exchange, Teams, SharePoint):” -ForegroundColor Yellow
$services = @(“Exchange Online”, “Microsoft Teams”, “SharePoint Online”)
foreach ($service in $services) {
$serviceStatus = Get-MsolServicePrincipal | Where-Object {$_.DisplayName -eq $service}
if ($serviceStatus.AccountEnabled) {
Write-Host “$service è ATTIVO.” -ForegroundColor Green
} else {
Write-Host “$service NON ATTIVO o Problema!” -ForegroundColor Red
}
}
#4. Verifica utenti con MFA abilitato
Write-Host “`n[4] Stato MFA Utenti:” -ForegroundColor Yellow
Get-MsolUser | Select-Object DisplayName, UserPrincipalName, StrongAuthenticationMethods | Format-Table -AutoSize
#5. Controlla eventuali utenti disabilitati
Write-Host “`n[5] Utenti disabilitati:” -ForegroundColor Yellow
Get-MsolUser -All | Where-Object {$_.BlockCredential -eq $true} | Select-Object DisplayName, UserPrincipalName
Chiude le sessioni
Disconnect-ExchangeOnline -Confirm:$false
Write-Host “`nDiagnostica completata.” -ForegroundColor Cyan
- Aprire powerShell con diritti di Amministratore
- Copiare e Incollare l’intero script
- Dare Invio