Gestire i nuovi utenti in AD porta via tempo e risorse? Netwrix vi offre una pratica guida per velocizzare le cose!

Quando dei nuovi utenti si uniscono all'azienda, gli amministratori IT devono creare i loro account nell'Active Directory. Dopodichè tutti gli specialisti daranno il benvenuto ai nuovi arrivati e li aiuteranno a fare il log in nel dominio. In questo articolo vi mostreremo come automatizzare questa procedura con l'aiuto dello scripting PowerShell. Sentitevi liberi di modificare questo script a seconda delle vostre esigenze.

Questo post riguarda soprattutto i seguenti aspetti:

  1. Leggere la password della posta elettronica come una stringa protetta, convertirla in una stringa crittografata e salvarla in un file di testo in modo che gli utenti normali non possano leggerla. Più tardi, lo script legge il file e lo converte in un oggetto stringa protetto da utilizzare come credenziale nei cmdlet successivi dei messaggi di posta elettronica.
  2. Creare uno script per identificare i nuovi utenti aggiunti in AD nelle ultime 24 ore e inviargli una mail di benvenuto usando il server SMTP di Gmail.
  3. Schedulare lo script per essere eseguito giornalmente alle 12:00 nella Pianificazione degli Eventi con l'aiuto del PowerShell.

Ho usato il seguente cmdlets in questo post; i dettagli del cmdlet sono disponibili nel sito di Technet.

  1. Read-Host (per leggere la string sicura da una linea di comando come user e password di Gmail)
  2. Send-MailMessage (per inviare email usando un server SMTP)
  3. Get-Date (per ricavare ora e data corrente)
  4. Get-Content (per leggere una password crittografata da un file)
  5. Get-ADUser (per ricavare i nuovi user aggiunti nell'AD)
  6. New-ScheduledTaskTrigger (per creare un nuovo evento per una task schedulata)
  7. Register-ScheduledTask (per schedulare una nuova task nel Task Scheduler)

Ho eseguito questo script in un Windows Server 2016. Potete modificare lo script a seconda delle necessità del vostro ambiente. Seguite questi 3 passi per far funzionare correttamente la procedura.


Step 1. Salvare la propria password Gmail come stringa crittografata in un file di testo

Aprire il PowerShell con i privilegi avanzati ed eseguire il seguente cmdlet. In questo modo viene richiesto di inserire una password che diventerà una stringa protetta e verrà poi salvata nel file di testo come stringa crittografata.

Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Users\securepassword.txt"



Step 2. Salvare lo script in un File con l'estensione .ps1

Aprire il Notepad e fare copia e incolla del seguente codice. Salvare il file come FindOutADUsers.ps1.

##Beginning of functions

 

Function Send-Email {

 

Param ($Email, $Credential,$attachment)

 

$From = "karim.buzdar@gmail.com"

$subject = "Welcome to yourdomain.com"

$SMTPServer = "smtp.gmail.com"

$SMTPPort = "587"

 

### Beginning of email body

 

$Body = "Dear User,<br><br>"

$Body += "Welcome to yourdomain.com <br><br>"

$Body += " This email will help you log in to your domain services. Follow these steps to log in to your domain: <br><br>"

$Body += "Step 1. Enter your username <br><br>"

$Body += "Step 2. Enter your password, and press enter <br><br>"

$Body += " Please check the attached screenshot. If you have any problems, please call the help desk at following number: <br><br>"

$Body += "<b>Extension No: 121</b><br><br>"

$Body += "Regards,<br><br>"

$Body += "Yourdomain.com Helpdesk"

 

### End of email body

 

Send-MailMessage -from $From -to $Email -Subject $subject -BodyAsHtml $Body -Attachments $attachment -SmtpServer $SMTPServer -Port $SMTPPort -Credential $Credential -UseSsl

 

}

 

### End of Functions

 

##### Beginning of main function

 

$When = ((Get-Date).AddDays(-1))

$UserName = "karim.buzdar@gmail.com" #Gmail username which is used for sending an email

$Password =  Get-Content "C:\Users\Administrator.YOURDOMAIN\Desktop\FindOutADUsers\securepassword.txt" | ConvertTo-SecureString  #Reading a secure password from file and reversing it back into a secure string object

$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($UserName, $Password) #PSCredential for send-mail message cmdlet

$Attachment = "C:\Users\Administrator.YOURDOMAIN\Desktop\FindOutADUsers\Screenshot.png" #Image sending as an attachment with email

 

 

 

foreach ($EmailAddress in Get-ADUser -filter {(whencreated -ge $When)} -Properties emailaddress | Select -ExpandProperty emailaddress) #Iterating over each email of users

 

{

 

Send-Email -Email $EmailAddress -Credential $Credential -attachment $Attachment

 

Write-Host "Email sent: $EmailAddress"

 

}

 

### End of main function

 


Step 3. Schedulare lo script utilizzando il pianificatore di eventi

Creare un nuovo file nel Notepad. Incollare il seguente script e salvarlo con l'estensione .ps1.

$Trigger= New-ScheduledTaskTrigger -At 12:00am -Daily #Trigger the task daily at 12 AM

$User= "yourdomain\administrator"

$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument

"C:\Users\Administrator.YOURDOMAIN\Desktop\FindOutADUsers\FindOutADUsers.ps1"

 

Register-ScheduledTask -TaskName "FindOutADUsers" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Force

Eseguite lo script qui sopra utilizzando il PowerShell utilizzando privilegi avanzati e avrete completato la procedura!

Quando una task schedulata viene eseguita con successo, i nuovi utenti aggiunti nell'Active Directory riceveranno la seguente email:

Controllate pure i miei post precedenti per imparare come creare utenti AD in bulk e inviargli per email le loro credenziali usando il PowerShell.

Spero che questo post vi sia utile. I vostri feedback e i vostri commenti sono sempre i benvenuti, specialmente se qualcosa non ha funzionato con lo script. Buona Fortuna!

Fonte: https://blog.netwrix.com/2017/04/18/powershell-script-discover-new-users-in-active-directory/