Script PowerShell: Rileva nuovi utenti in Active Directory

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,

$Body += “Welcome to yourdomain.com

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

$Body += “Step 1. Enter your username

$Body += “Step 2. Enter your password, and press enter

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

$Body += “Extension No: 121

$Body += “Regards,

$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

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/

Share on facebook
Condividi
Share on twitter
Tweet
Share on linkedin
LinkedIn
Torna in cima