Creare utenti AD in massa e inviare le loro credenziali tramite PowerShell
Mar 30, 2017
Ogni anno, le istituzioni educative iscrivono centinaia di studenti. Di conseguenza, gli ingegneri di sistema delle istituzioni richiedono tempo ed energia aggiuntivi per creare un account AD per ogni studente e poi informare manualmente gli studenti riguardo i loro nomi utente e password.
Questa guida passo dopo passo renderà la vita degli ingegneri di sistema un po' più semplice con l'aiuto dello scripting PowerShell. Lo script consente di creare account utente AD da un file CSV, assegnare loro password casuali e poi inviare quei nomi utente e password ai nuovi studenti tramite email di benvenuto.
Ho utilizzato i seguenti cmdlet nel mio script. Clicca su un cmdlet specifico per maggiori dettagli.
- Import-CSV (per l'importazione dei dettagli degli utenti)
- Get-Credential (per ottenere le credenziali email)
- Get-Random (per la generazione di password)
- New-ADUser (per la creazione di nuovi utenti AD)
- Get-Content (per leggere il contenuto delle email da un file)
- Send-MailMessage (per inviare email agli utenti)
Per inviare le email con le credenziali ai nuovi utenti, sto utilizzando un server SMTP di Gmail. Tuttavia, puoi configurare lo script in base al tuo ambiente IT e al tuo server di posta. Lo script sottostante è stato scritto e testato su un DC in esecuzione su Windows Server 2016. Se devi eseguire lo script su Windows Server 2012, 2012 R2 o 2008, potresti dover importare alcuni moduli PowerShell.
Prima di eseguire lo script, verifica i seguenti prerequisites:
- Un file CSV con le informazioni degli studenti (nome, cognome, nome account Sam e indirizzo email)
- Un file di testo o Word (doc o docx) con un messaggio di benvenuto via email
- Una connessione Internet attiva (se si desidera utilizzare un server SMTP di Gmail)
Contenuti correlati selezionati:
Se avete soddisfatto tutti questi requisiti, potete creare account AD e inviare email di benvenuto in massa seguendo due semplici passaggi:
Passo 1.
Copia e incolla lo script in un file di testo e salvalo con l'estensione .ps1:
##Beginning of functions
Function Format-Email {
Param ([string]$WCEmailContent,[string]$UserPrincipalName,[string]$UserPassword)
return $WCEmailContent + "User Name = $UserPrincipalName
Password = $UserPassword
Thank You
IT Department"
}
Function Send-Email {
Param ($Email, $Credential,[string]$WCEmailContent)
$From = "karim.buzdar@gmail.com"
$subject = "Domain Account Details"
$Body = $WCEmailContent
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
Send-MailMessage -from $From -to $Email -Subject $subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -Credential $Credential -UseSsl
}
###End of Functions
##### Beginning of main programme
$Credential = (get-Credential) #Getting email credentials to be used for From field in Email message
$UsersFilePath = "C:UsersAdministrator.YOURDOMAINDesktopWCusers.csv" # Files of users information (First name, Last name, Sam account name, Email address)
$WCEmailFile = "C:UsersAdministrator.YOURDOMAINDesktopWCWCEmail.docx" # File containing welcome email message
import-csv -path $UsersFilePath | foreach {
$Name = ($_.GivenName + " " + $_.LastName)
$UserPrincipalName = ($_.SamAccountName + ”@yourdomain.com”)
$UserPassword = Get-Random -maximum 20000 -Minimum 100
$UserPassword = "@" + "user" + $UserPassword.ToString()
#Create user in Students OU
new-aduser -name $Name -enabled $true -GivenName $_.GivenName –surname $_.lastName -accountpassword (convertto-securestring $UserPassword -asplaintext -force) -changepasswordatlogon $true -samaccountname $_.SamAccountName –userprincipalname $UserPrincipalName -EmailAddress $_.EmailAddress -Path 'OU=Students,DC=yourdomain,DC=com' -ErrorAction Stop
$WCEmailContent = Format-Email -WCEmailContent (Get-Content $WCEmailFile) -UserPrinciPalName $UserPrincipalName -UserPassword $UserPassword
Send-Email -Email $_.EmailAddress -Credential $Credential -WCEmailContent $WCEmailContent
Write-Host "User Created: $Name"
}
### End of main program
Passaggio 2.
Apri PowerShell con i tuoi privilegi elevati ed esegui il file di script che hai creato nel Passo 1.
Una volta eseguito con successo lo script, gli utenti possono accedere immediatamente al dominio. È possibile verificare la creazione dell'account nella console Active Directory Users and Computers e inviare la notifica della creazione dell'account utilizzando il campo CC nel cmdlet Send-MailMessage.
Dai un'occhiata al mio ultimo post per scoprire come individuare nuovi utenti aggiunti in AD nelle ultime 24 ore e inviare le loro credenziali tramite email usando PowerShell. Potresti anche provare questo How-to: Export Specific Users from Active Directory se ti viene chiesto frequentemente di esportare utenti AD in CSV.
Sentitevi liberi di lasciare i vostri suggerimenti nei commenti in modo che possiamo migliorare la funzionalità dello script.
Condividi su
Scopri di più
Informazioni sull'autore
Karim Buzdar
Ingegnere di supporto
Ingegnere IT e Microsoft Certified Solutions Associate (MCSA) per l'infrastruttura del server. Come autore tecnico, Karim si concentra sui servizi di directory Microsoft e PowerShell.
Scopri di più su questo argomento
Leggi sulla Privacy dei Dati per Stato: Diversi Approcci alla Protezione della Privacy
Esempio di Analisi del Rischio: Come Valutare i Rischi
Il Triangolo CIA e la sua applicazione nel mondo reale
Cos'è la gestione dei documenti elettronici?
Analisi quantitativa del rischio: Aspettativa di perdita annuale