DEV Community

Cover image for Offboarding in Active Directory e Microsoft 365: l'ordine giusto (con script PowerShell)
Erik Szalai
Erik Szalai

Posted on Fully Autonomous

Offboarding in Active Directory e Microsoft 365: l'ordine giusto (con script PowerShell)

Quando un collega lascia l'azienda, l'IT ha due obiettivi in tensione: togliere l'accesso subito e non perdere nulla di ciò che serve all'azienda. Quasi tutti i problemi che ho visto nascono dall'ordine sbagliato delle operazioni.

Ecco la sequenza che uso in un ambiente ibrido (Active Directory on-premises sincronizzato con Entra ID tramite Entra Connect).

1. Blocca l'accesso e revoca le sessioni

Disabilitare l'account non chiude le sessioni già aperte: i token delle app moderne restano validi fino alla scadenza. Serve anche la revoca esplicita.

# Microsoft Graph PowerShell
Connect-MgGraph -Scopes 'User.ReadWrite.All'
Revoke-MgUserSignInSession -UserId 'm.rossi@contoso.it'
Enter fullscreen mode Exit fullscreen mode

In ambiente ibrido l'account va disabilitato in Active Directory, che è la fonte autorevole: il blocco arriva in cloud al ciclo di sincronizzazione successivo.

2. Reimposta la password

Un valore lungo e casuale, che nessuno conosce, invalida eventuali credenziali salvate o condivise.

3. Salva i gruppi prima di toglierli

Esporta le appartenenze in CSV: se l'uscita viene annullata, o se il sostituto deve avere gli stessi accessi, le ripristini in un minuto.

$user = Get-ADUser m.rossi -Properties MemberOf
$user.MemberOf | Get-ADGroup | Select-Object Name, DistinguishedName |
    Export-Csv "Gruppi_m.rossi_$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation -Delimiter ';' -Encoding UTF8
Enter fullscreen mode Exit fullscreen mode

4. Converti la mailbox in condivisa PRIMA di togliere la licenza

È l'errore più frequente. Se togli prima la licenza, partono 30 giorni dopo i quali la casella viene eliminata. Una shared mailbox sotto i 50 GB (senza archivio o hold) non richiede licenza.

Connect-ExchangeOnline
Set-Mailbox -Identity m.rossi@contoso.it -Type Shared
Add-MailboxPermission -Identity m.rossi@contoso.it -User l.bianchi@contoso.it -AccessRights FullAccess
Enter fullscreen mode Exit fullscreen mode

Solo dopo aver verificato la conversione rimuovi le licenze.

5. Controlla inoltri e deleghe

Un inoltro automatico verso un indirizzo personale è una fuga di dati e un potenziale problema GDPR. Controlla sia l'inoltro a livello di casella sia le regole di posta in arrivo.

6. Sposta l'account e lascia una traccia

Sposta l'utente in un'OU dedicata agli account disabilitati e scrivi nella descrizione data, numero di ticket e operatore. L'eliminazione definitiva solo dopo il periodo di conservazione previsto dalla tua policy.

7. Recupera i dispositivi

Per gli smartphone personali usa il retire di Intune: rimuove solo i dati aziendali.

Automatizzare tutto, in sicurezza

Ognuno di questi passaggi si automatizza in PowerShell. Il consiglio più importante: usa SupportsShouldProcess nei tuoi script, così con -WhatIf vedi cosa succederebbe prima di farlo davvero.


Trasparenza: ho raccolto gli script completi che uso (offboarding AD e Microsoft 365 con backup dei gruppi, log e -WhatIf) e una checklist stampabile nel Kit Operativo SysAdmin, che vendo. Alcuni script sono gratuiti su GitHub e c'è un mini kit gratuito con uno script di diagnostica di rete. Tutto in italiano.

Top comments (0)