Creazione automatica utenze in Active Directory tramite script

Disclaimer:
Il presente articolo NON costituisce un tutorial esaustivo sull'argomento.
Descrivo solo in breve come ho risolto il problema da un mio cliente.

Utenti in Active Directory

Devi creare e/o cancellare diversi account per volta in Active Directory?

Nel corso degli anni ho lavorato per diverse multinazionali, ma nel caso specifico che vado a descrivere, ho risolto un problema che si ripeteva spesso.
Lavorando come sistemista capita veramente di frequente di dover creare e cancellare delle utenze in Active Directory, sia che lavoriate come dipendenti, sia che siate dei liberi professionisti (o per dirla come piace agli anglofili/esterofili: freelancer). Come compiere un lavoro efficace ed efficiente senza, tra l'altro, doversi annoiare? La risposta è semplice: Creando uno script!

Script PowerShell
Che cos'è uno script? Uno script è semplicemente una serie di istruzioni che facciamo eseguire in maniera automatica ai server che gestiscono Active Directory, con lo scopo di non dover ripetere "manualmente" e di continuo, lavori simili. Il caso specifico che consideriamo in quest'articolo, è la creazione/cancellazione delle utenze di una rete informatica aziendale. Figo, no? ;) Beh, sì direte voi... ma come si fa in pratica? Ripeto, non andrò a descrivere qui tutti i passaggi, ma dirò semplicemente quali sono le linee guida generali alla base di questo approccio. Se tuttavia, desiderate informazioni più dettagliate, potete contattarmi qui.

Tutto quello che serve, oltre al nostro amato script, è un file excel che contenga: nomi, cognomi e/o nomi-utente, dipartimento, numero di telefono e... compagnia bella. Così, quando il nostro script viene eseguito, "legge" i dati che gli occorrono per la creazione/cancellazione delle utenze. Chiaro no? Se non hai capito fino a qui, puoi: [a] Rileggere [b] Lasciar perdere (soprattutto) se hai già eseguito l'opzione precendente [c] Chiamarmi e lasciarmi fare, se no a cosa sevono quelli come me? Se invece hai capito fin qua, bene, vorrà dire che non avrò scritto invano...


Ma allora, quali istruzioni dovrà contenere lo script?
Delegate Control

PRIMA UN' IMPORTANTE PRECISAZIONE!: Non possiamo andare avanti, senza prima averti fatto notare che per far funzionare questo script, l'utenza che creerà le altre, oltre ad assere un amministratore dovrà avere la "Delegation Control" (vedi la relativa immagine). Detto questo, possiamo procedere.

Ora, se volessimo utilizzare PowerShell per creare un utente, dovremmo digitare un comando simile al seguente:

New-ADUser -Name "Paperino" -GivenName "Paperino.Duck" -Surname "Duck" -SamAccountName "Paperino" -UserPrincipalName "paperino.duck@NomeMiaAzienda.it" -Path "OU=IT,OU=HeadOffice,DC=NOMEAZIENDA,DC=IT"

Ma visto che abbiamo deciso di usare uno script, quello che dobbiamo fare è passare automaticamente i dati (ad esempio il nome dell'utenza descritto sopra) allo script. Come? L'ho accennato prima; se inserissimo questi dati in un file excel, lo script leggerà i 100 o i 10.000 nomi che siano, direttamente dal file, per poi inserirli in Active Directory.

A questo punto, vorresti dare un'occhiata allo scipt che ho creato? Te lo mostro con piacere. Clicca sul link seguente per accedere al mio repository GitHub, che è il luogo virtuale, dove tutti i programmatori tengono i loro codici sorgenti, o un pezzo degli stessi, e che desiderano condividere gratuitamente. Come puoi notare, anche se non ho condiviso tutto il codice, le istruzioni da codificare sono veramente un bel po'...

Ora il tempo a mia disposizione per quest'articolo è terminato, ma continua a seguirmi... Se sei un tecnico, oppure un potenziale cliente, e vuoi saperne di più, contattami fino ad allora... À bientôt!