Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBlog
Script PowerShell : Découvrez les nouveaux utilisateurs dans Active Directory

Script PowerShell : Découvrez les nouveaux utilisateurs dans Active Directory

Apr 18, 2017

Lorsque de nouveaux employés rejoignent une entreprise, les techniciens informatiques doivent créer leurs comptes dans Active Directory. Plus tard, le spécialiste IT accueille chaque nouvel arrivant et les aide à se connecter au domaine. Dans cet article, je vais vous montrer comment automatiser cette procédure à l'aide de scripts PowerShell. N'hésitez pas à modifier ce script pour l'adapter à vos besoins particuliers.

Cet article de blog couvre spécifiquement les trois sujets suivants :

  1. Lisez le mot de passe de l'e-mail comme une chaîne sécurisée, convertissez-le en une chaîne cryptée et enregistrez-le dans un fichier texte afin que les utilisateurs normaux ne puissent pas le lire. Plus tard, le script le lit et le reconvertit en un objet de chaîne sécurisée pour être utilisé comme justificatif dans les cmdlets de messages électroniques subséquents.
  2. Créez un script pour identifier tout nouvel utilisateur ajouté dans AD au cours des dernières 24 heures et envoyez-leur un e-mail de bienvenue en utilisant le serveur SMTP de Gmail.
  3. Planifiez l'exécution du script tous les jours à 00h00 dans le Planificateur de tâches à l'aide de PowerShell.

J'ai utilisé les cmdlets suivants dans cet article ; les détails de chaque cmdlet sont disponibles sur le site de Technet.

  1. Read-Host (pour lire la chaîne sécurisée depuis une ligne de commande comme les mots de passe utilisateur Gmail)
  2. Send-MailMessage (pour envoyer des messages e-mail à l'aide d'un serveur SMTP)
  3. Get-Date (pour obtenir la date et l'heure actuelles)
  4. Get-Content (pour lire un mot de passe crypté à partir d'un fichier)
  5. Get-ADUser (pour obtenir les utilisateurs nouvellement ajoutés depuis AD)
  6. New-ScheduledTaskTrigger (pour créer un nouveau déclencheur de tâche planifiée)
  7. Register-ScheduledTask (pour programmer la nouvelle tâche dans le Planificateur de tâches)

J'ai exécuté ce script sur Windows Server 2016. Vous pouvez le modifier en fonction des besoins de votre environnement. Suivez ces trois étapes pour tout faire fonctionner.


Étape 1. Enregistrez votre mot de passe Gmail sous forme de chaîne cryptée dans un fichier texte

Ouvrez PowerShell avec des privilèges élevés et exécutez le cmdlet suivant. Cela vous invite à entrer un mot de passe comme une chaîne sécurisée et à l'enregistrer dans un fichier texte sous forme de chaîne chiffrée.

      Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File “C:Userssecurepassword.txt”
      


Étape 2. Enregistrez le script dans un fichier avec l'extension .ps1

Ouvrez le Bloc-notes et copiez-collez le code suivant. Enregistrez le fichier sous le nom 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:UsersAdministrator.YOURDOMAINDesktopFindOutADUserssecurepassword.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:UsersAdministrator.YOURDOMAINDesktopFindOutADUsersScreenshot.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
      


Étape 3. Planifiez le script à l'aide de Task Scheduler

Dans le Bloc-notes, créez un nouveau fichier. Collez le script suivant et enregistrez-le avec l'extension .ps1.

      $Trigger= New-ScheduledTaskTrigger -At 12:00am -Daily #Trigger the task daily at 12 AM
$User= "yourdomainadministrator"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument 
"C:UsersAdministrator.YOURDOMAINDesktopFindOutADUsersFindOutADUsers.ps1"

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

Exécutez le script ci-dessus dans PowerShell avec des privilèges élevés, et vous avez terminé !

Lorsqu'une tâche planifiée s'exécute avec succès, les utilisateurs nouvellement ajoutés dans Active Directory recevront l'email suivant :

Image

J'espère que cet article vous sera utile. Vos retours et commentaires sont toujours les bienvenus, surtout si quelque chose ne fonctionne pas dans ce script. Bonne chance !

Partager sur

En savoir plus

À propos de l'auteur

Asset Not Found

Karim Buzdar

Ingénieur Support

Ingénieur informatique et Microsoft Certified Solutions Associate (MCSA) pour l'infrastructure serveur. En tant qu'auteur technique, Karim se concentre sur les services d'annuaire Microsoft et PowerShell.