Vi siete mai chiesti a cosa serve la scheda "Managed By" presente nella finestra "proprietà" di alcune tipologie di oggetti Active Directory?
Il suo scopo è quello di semplificare l'impostazione e la consultazione di un attributo denominato appunto "managedBy" con il quale l'amministratore ha la possibilità di specificare il "distinguished name" dell'utente responsabile della gestione di un determinato oggetto.
Per farvi un esempio: immaginate una realtà piuttosto complessa in cui l'amministrazione non possa essere completamente centralizzata e che per questo motivo fa largo impiego di deleghe amministrative per la gestione di server, computer, unità organizzative e gruppi, se un utente all'interno di questa struttura volesse richiedere l'aggiunta di un contatto all'interno di un gruppo di distribuzione potrebbe visualizzarne la scheda "Managed By" al fine di identificare la giusta persona a cui rivolgersi per ottenere tali modifiche.
In realtà molte aziende non hanno una Directory così complessa da richiedere la suddivisione e la delega dei compiti amministrativi, in questi casi l'amministrazione viene solitamente svolta da un unico apposito ufficio e le persone da contattare per avere assistenza sono già perfettamente note. E' evidente come in questa situazione, largamente diffusa, l'attributo "managedBy" perda il suo significato e diventi pressoché inutile.
Ma quante sono invece le aziende che non possiedono un adeguato standard per i nomi computer che permetta di identificare rapidamente l'utente che li utilizza? Quelle realtà in cui gli oggetti computer possiedono nomi come PC01, PC02, PC03 ecc. che in caso di necessità risultano impossibili da mettere in relazione diretta con un determinato account utente. Ecco che in questi casi l'attributo "managedBy" degli oggetti computer può essere sfruttato dall'ufficio IT al fine di ottenere, interrogando direttamente il database di Active Directory, utili informazioni come il nome dell'utente primario di un dato computer oppure il nome del computer normalmente utilizzato da un dato utente.
N.B: per correttezza va detto che l'assegnazione di un valore all'attributo "managedBy" di gruppi utente o Domain Controller di tipo "RODC" comporta una modifica dei permessi di protezione ad essi associati, questo però non avviene nei normali account computer per i quali l'attributo rappresenta semplicemente il collegamento (cross-reference) ad un oggetto utente.
Un file .HTA per rendere più semplice la ricerca in Active Directory
Allo scopo di rendere semplice ed immediata la consultazione dell'attributo "managedBy" degli oggetti computer ho realizzato un'apposita applicazione HTA che potete scaricare a questo indirizzo [1].
Lo so... la GUI è orrenda... diciamo soltanto che quando ho scritto il codice ho dato maggior peso ad altri aspetti ;-)
Una volta aperta l'applicazione tramite doppio clic sarà sufficiente scrivere nel campo di inserimento testo il nome di un computer o di un utente e successivamente cliccare il bottone "Get managedBy", nello specifico: scrivendo il nome di un computer ne otteniamo l'utente, scrivendo il nome di un utente otteniamo tutti i computer ad esso collegati.
Se il campo di inserimento testo viene lasciato vuoto la pressione del tasto "Get managedBy" causa l'apertura di una finestra di dialogo di tipo "Sfoglia" con la quale è possibile fornire in input un elenco testuale di nomi (computer oppure utente) da ricercare, una funzionalità che può tornare utile al fine di creare un riepilogo generale.
Automatizzare l'impostazione di "managedBy" per tutti i computer
A questo punto, se avete trovato interessante quanto ho detto, vi starete sicuramente domandando se esista un modo per evitare di impostare manualmente l'attributo "managedBy" sulle centinaia di oggetti computer che popolano il vostro Active Directory.
Per questo motivo ho realizzato uno script WSH in grado di connettersi ai computer della rete, identificare l'ultimo utente che ha eseguito il login ed infine scrivere automaticamente tale informazione all'interno dell'attributo "managedBy" del relativo oggetto computer.
Tale procedura è disponibile in due versioni "Set_ADmanagedBy_Computers_Simulation.vbs [6]" e "Set_ADmanagedBy_Computers.vbs [6]": sono praticamente identiche tra loro, l'unica differenza consiste nel fatto che la prima (che definisco "simulazione") non modifica l'Active Directory ma si limita a creare un report in formato testuale (delimitato da tab) delle relazioni utente-computer rilevate mentre la seconda, oltre a generare il report, procede con la scrittura delle stesse in Active Directory. Lo script di "simulazione" potrebbe essere eseguito anche a distanza di tempo come strumento di verifica degli attributi "managedBy".
Scaricate il file .zip, estraete gli script in una cartella e create nella stessa un file di testo denominato "computers.txt" nel quale andrete ad inserire i nomi dei computer (uno per riga) sui quali volete eseguire la procedura appena descritta. Non vi resta che fare doppio clic sullo script che volete eseguire ed attendere il messaggio che apparirà al termine dell'esecuzione.
Nota: se utilizzate un personal firewall (come Windows Firewall) per proteggere i computer client della rete deve esistere una eccezione per l'amministrazione remota di Windows.