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 :
- 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.
- 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.
- 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.
- Read-Host (pour lire la chaîne sécurisée depuis une ligne de commande comme les mots de passe utilisateur Gmail)
- Send-MailMessage (pour envoyer des messages e-mail à l'aide d'un serveur SMTP)
- Get-Date (pour obtenir la date et l'heure actuelles)
- Get-Content (pour lire un mot de passe crypté à partir d'un fichier)
- Get-ADUser (pour obtenir les utilisateurs nouvellement ajoutés depuis AD)
- New-ScheduledTaskTrigger (pour créer un nouveau déclencheur de tâche planifiée)
- 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 :
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 !
Contenu connexe sélectionné :
- Comment désactiver les comptes d'utilisateurs inactifs en utilisant PowerShell
- Comment créer en masse des utilisateurs AD et envoyer leurs identifiants par e-mail à l'aide de PowerShell
- Comment créer de nouveaux utilisateurs Active Directory avec PowerShell
- Comment exporter des utilisateurs spécifiques depuis Active Directory
- Comment restaurer des utilisateurs Active Directory
Partager sur
En savoir plus
À propos de l'auteur
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.
En savoir plus sur ce sujet
Créez des utilisateurs AD en masse et envoyez leurs identifiants par e-mail à l'aide de PowerShell
Comment créer, modifier et tester des mots de passe en utilisant PowerShell
Comment ajouter et supprimer des groupes AD et des objets dans des groupes avec PowerShell
Confiances dans Active Directory
Attaques de rançongiciels sur Active Directory