Qualche giorno fa, dopo aver eseguito un’attività maldestra sul mailbox database di exchange 2007, mi sono ritrovato praticamente con tutti gli utenti di Active Directory (con una mailboax attiva) cancellati. In ambiente Windows Server 2008 ho dovuto quindi ripristinare gli utenti cancellati.

img_active_directory

Dopo essersela fatta nelle mutande, le cose da fare a questo punto erano rimaste sostanzialmente 3:

-Ricreare gli utenti a mano. Dato che erano pochi sarebbe stata un’operazione abbastanza veloce, ma non adatta al mio caso perchè significava rifare tutti i permessi sulle cartelle di rete e, ovviamente, tutti i profili utente sui client. Non c’è gioia in tutto questo.

-Ripristinare da un backup. Anche questa era un’operazione fattibile ma ho preferito evitare, essenzialmente perchè non volevo arrivare a tanto per 4 utenti del cazzo (non amo i backup, e tantomeno i ripristini e cerco sempre di mantenerli come ultima spiaggia).

-Recuperare gli utenti dalla rubrica LDAP. Questo invece è stato quello che ho fatto.

Forse non tutti sanno che… ogni volta che eliminiamo un oggetto da active directory, in LDAP viene marcato come eliminato e nascosto da tutte le visualizzazioni. E’ quindi possibile recuperarli modificando a mano questi parametri. Questo è forse poco serio, ma di sicuro successo.

Apro parentesi: anche se il collega Maurizio non è d’accordo con me, non si deve MAI eliminare un oggetto da AD. Gli oggetti di AD si disabilitano o al limite si spostano in una Unità Organizzativa appositamente creata che dovreste chiamare con un nome tipo “Bad boys” o “No sudo for you” o cose del genere. Questo perchè si perde l’associazione col SID, e quindi poi venitemi a spiegare dopo anni, quando andate a vedere ad esempio i permessi di una cartella e trovate SID orfani, cosa accidenti fate. Il SID di un utente è FONDAMENTALE per la corretta amministrazione di un server.

Quindi, abbiamo detto che è possibile recuperare gli oggetti cancellati modificandone i parametri dal database LDAP. Quindi apriamo ldp.exe da Start > Esegui: Quello che ne otteniamo è una bella finestra bianca, completamente vuota. E’ semplicemente un browser LDAP, dobbiamo quindi per prima cosa collegarci ad un server, che nel nostro caso è quello su cui stiamo lavorando. Andiamo quindi in Connessione (EN: Connection) -> Connetti (EN: Connect), scriviamo localhost o l’FQDN del server, e pigiamo OK.
Una volta connessi, occorre fare il binding con il server, andando sempre in Connessione -> Binding. Qui possiamo lasciare tutto al default. A suggerirci che siamo andando benone, nella finestra principale appare “authenticated as NOMEDOMINIOadministrator” (sempre che voi stiate facendo tutto ciò con l’utente administrator, cosa che consiglio vivamente di fare).

Dobbiamo a questo punto dire al browser che vogliamo avere anche l’elenco degli oggetti eliminati, quindi in Opzioni (EN: Options) -> Controlli (EN: Controls), selezioniamo “Return deleted objects” dal menù Carica predefinito (EN: Load Predefined) e diamo OK.
Ancora niente nella nostra finestra di browser. Ci manca infatti aprire un albero di visualizzazione. Per farlo ci dirigiamo tutti contenti verso il menu Visualizza (EN: View) -> Albero (EN: tree), dove ci verrà richiesta una base dalla quale partire, e nella quale ovviamente andremo a mettere la Base DN del nostro dominio AD. Nel mio caso, trattandosi di uno Small Business 2008, e avendo un dominio di nome “fuckyeah.local” ho inserito DC=fuckyeah,DC=local.

Finalmente vediamo l’albero di LDAP alla nostra sinistra, e già abbiamo notato quel “Deleted Objects” che ci farà godere assai. Basta un doppio click per avere l’elenco di tutti gli oggetti cancellati.

Individuato l’utente da recuperare, ci facciamo un click con il tasto destro e scegliamo modifica (EN: Edit). Quello che dobbiamo fare adesso, è dire al browser LDAP quali parametri dobbiamo modificare e in cosa. A noi ce ne servono solo 2: “isDeleted” e “distinguishedName”.

In “Modifica voce attributo” (EN: Edit Entry Attribute) scriviamo “isDeleted” (!!Case sensitive), lasciamo vuoto il campo Valori (EN: Values), e selezioniamo “Eliminazione” nel campo Operazione. Stiamo dicendo che dobbiamo eliminare quella voce dall’oggetto. Premendo “Invia” (Send) aggiungiamo la modifica alla coda.

Prima di eseguire però dobbiamo modificare anche l’altra voce, quindi sempre in “Modifica voce attributo”, scriviamo “distinguishedName” (!!Sempre case sensitive) e questa volta dobbiamo indicare in cosa vogliamo che sia modificata la voce. Nel mio caso (ricordo che stato operando su un Windows Small Business Server 2008 R2) ho inserito nel campo “Valori” questa stringa:

CN=Nome Utente,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=fuckyeah,DC=local

Verificate la stringa in base alla vostra versione di Windows! In particolare se non state operando su SBS, molto probabilmente non avrete l’OU MyBusiness e SBSUsers. In pratica è il percorso AL CONTRARIO dell’albero di AD dove volete che l’utente sia inserito (vedete infatti che il dominio è alla fine). Nota: il primo parametro è il nome utente visivo, non l’username. Tenete presente che potete sempre ripristinarlo in un percorso a cazzo di cane e poi spostarlo col fedele mouse da AD. Sconsigliato con la forza di mille soli, ma se credete di essere tanto bravi fatelo e nessuno vi verrà ad arrestare (credo).

Nel campo operazione, indichiamo che vogliamo una sostituzione (EN:Replace) e premiamo ancora invia.

A questo punto la coda delle modifiche è completa. Non ci resta che flaggare “Estesa” (EN: Extended) in basso a sinistra (se non lo fate otterrete solo un “Unable to find object”) e premere Esegui.

ldap-ripristinare-utente

Well Done! Se apriamo Utenti e Computer di Active Directory troveremo il nostro utente (con il suo SID) ripristinato dove avevamo indicato. Ora dobbiamo riconfigurarlo aggiungendo la cassetta postale, i gruppi ai quali apparteneva, e tutte le vostre personalizzazioni.

Segnalo questa pagina del sempre caro Petri, che approfondisce parecchio l’argomento. E anche questa whitepage (a dire il vero poco dettagliata) su Microsoft Technet.

Non giocate con questa roba, o dovrete portarvi dietro un sacco di mutande.

Mike VulcanoServerWindowsactive directory,exchange,ldap,mutande,sbs,server,sid,windows
Qualche giorno fa, dopo aver eseguito un'attività maldestra sul mailbox database di exchange 2007, mi sono ritrovato praticamente con tutti gli utenti di Active Directory (con una mailboax attiva) cancellati. In ambiente Windows Server 2008 ho dovuto quindi ripristinare gli utenti cancellati. Dopo essersela fatta nelle mutande, le cose da...