• 6 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 23/03/2023

Automatisez la configuration d’Active Directory avec PowerShell

Créez un utilisateur et activez un utilisateur avec PowerShell

À présent que vous savez créer des scripts et manipuler des fichiers, nous allons passer à de la gestion d’Active Directory. Je vous invite à sortir votre plus belle machine virtuelle Windows Server, et à me suivre pour ce chapitre.

Avec un Active Directory tout fraîchement installé, vous devriez avoir ceci dans les utilisateurs.

Seul l'Administrateur et un utilisateur invité sont listés comme utilisateurs

Elle n’est pas un peu vide d’utilisateurs, cette liste ?

C’est juste. La première action que vous allez apprendre est donc la création d’utilisateurs. Pour cette action aussi, une cmdlet existe.

Ouvrez votre invite de commandes PowerShell et entrez la cmdlet suivante :

New-ADUser -Name “David Tennant” -SamAccountName d.tennant -UserPrincipalName “david.tennant@etcomment.fr” -AccountPassword (ConverTo-SecureString -AsPlainText IAmThe10thDoctor -Force -PasswordNeverExpires $true

  • login : d.tennant ;

  • mail : david.tennant@etcomment.fr ;

  • mot de passe : IAmThe10thDoctor ;

  • pas d’expiration du mot de passe.

on retrouve toutes les informations essentielles de la cmdlet : nom, adresse mail, mot de passe sans expiration.

Félicitations ! Vous avez créé votre premier utilisateur, (nom : David Tennant, Login : d.tennant) avec PowerShell. Par défaut, il est créé dans l’unité d’organisation Users :

Dans la liste des utilisateurs, David Tennant est apparu

Vous avez créé votre premier utilisateur, oui, mais il est désactivé ! 😩 Vous pouvez le voir avec la petite flèche vers le bas, juste à côté de son icône de profil.

Pas de problème, nous allons l'activer en tapant la cmdlet PowerShell suivante :

 Enable-ADAccount d.tennant 

On entre la cmdlet Enable-ADAccount d.tennant dans l'invite de commandes

Cool, mon utilisateur est activé. 😀 Je le vois car il n’y a plus la petite flèche vers le bas à côté de son profil !

Dans la liste d'utilisateurs, la flèche vers le bas sur l'utilisateur David Tennant a disparu.

Ce n’est pas pratique pour créer plusieurs utilisateurs à la fois, mais vous allez voir que cette cmdlet va être la base de tous vos scripts de création d’utilisateurs.

Je vous propose pour la suite de reprendre la liste des utilisateurs dont vous avez créé les dossiers dans le “À vous de jouer” du chapitre “Bouclez sur vos données” :

prenom,nom

Mac,Giver

Sarah,Connor

Tom,Baker

David,Tennant

Matt,Smith

Peter,Capaldi

Créez un script PowerShell de création d'utilisateur

Bien. C’est le bon moment pour commencer à écrire… un script ! Et pour l’écrire, vous allez pouvoir réutiliser tout ce que vous avez vu avant, et rien de plus.

Pour ce script, nous allons effectuer les actions suivantes :

  • demander le nom et le prénom de l’utilisateur ;

  • générer le login de l’utilisateur ;

  • mettre un mot de passe par défaut ;

  • créer l’utilisateur et l’activer.

Vous pouvez commencer à ouvrir votre PowerShell ISE pour créer votre nouveau script.

Je vous laisse ajouter votre cartouche personnalisé préféré au début du script. C’est une bonne habitude à prendre !

1. Demander le prénom et le nom de l’utilisateur.

 $nom = Read-Host "Merci de Rentrer le Prénom et le Nom de l’Utilisateur à Créer"

2. Générer un login.

$initialePrenom = $nom.Substring(0,1) #première lettre du prénom
$nomFamille = $nom.Split(“ “)[1] #Récupération du nom de famille
$loginGenere=$initialePrenom+”.”+$nomFamille #Concaténation de la première lettre du nom avec le nom de famille
$loginGenere = $loginGenere.toLower() #On met le tout en minuscules

3. Mettre un mot de passe par défaut

 $motDePasse = "Password1!"

4. Créer l’Utilisateur

try {
    New-ADUser -Name $nom `
    -SamAccountName $loginGenere `
    -UserPrincipalName $loginGenere@etcomment.fr `
    -AccountPassword (ConvertTo-SecureString -AsPlainText $motDePasse -Force) `
    -Enabled $true
    Write-Host "L'utilisateur $nom a été créé dans l'AD"
}
Catch {
    Write-Host "Une erreur est apparue à la création de l'utilisateur : "$_
}

Votre script devrait ressembler à quelque chose comme ceci :

Essayez de vous remémorer l’intérêt de tous les éléments autres que les simples cmdlets de création d’utilisateurs que j’ai pu y mettre.

Notre script fonctionne correctement, comme le montre notre Active Directory.

On retrouve le nom d'ouverture du compte et sa date d'expiration, ainsi qu'un ensemble d'options de compte, comme la non expiration du mot de passe
Propriétés de l'utilisateur Matt Smith

La vérification de la présence de notre utilisateur est bien sûr aussi possible avec une cmdlet, dans votre invite PowerShell. Essayez de l’afficher avec la cmdlet  Get-ADUser -Filter *   .

La cmdlet Get-ADUser-Filter *
La cmdlet Get-ADUser-Filter *

Et comme souvent avec PowerShell, vous pouvez sélectionner les informations qui vous intéressent avec les pipelines et Select-Object  . Eh oui, vous voyez, tout ce qu’on a pu faire avant sert bien !

 Get-ADUser -Filter * | select Name, samAccountName, UserPrincipalName   .

Application du Select-object sur le nom
Application du Select-object sur le nom

Et vous pouvez même générer un fichier texte avec vos différents filtres, comme ceci :

Get-ADUser -Filter * | Select-Object name, samAccountName, UserPrincipalName | Export-Csv UserAdUTF8.csv -Encoding UTF8

Et là encore, vous pouvez vérifier avec la cmdlet  Get-Content .\UserAdUTF8.csv   .

La Cmdlet Get-Content .\UserAdUTF8.csv
La Cmdlet Get-Content .\UserAdUTF8.csv

Comprenez la gestion des groupes avec PowerShell

Créez le groupe à partir d’une entrée utilisateur

La cmdlet à connaître pour la création de groupe sous PowerShell est New-ADGroup  .

Et comme vous commencez à être habitué à PowerShell, vous pouvez utiliser la cmdlet en lui passant le résultat d’un  Read-Host  .

New-ADGroup $(Read-Host “Entrez le nom du groupe à créer”) -GroupScope Global   .

Ajout du Read-Host dans la Cmdlet
Ajout du Read-Host dans la Cmdlet

Et en gardant la même logique qu’avec la création d’utilisateur, vous avez une cmdlet qui vous permet de vérifier la création du groupe : Get-ADGroup  .

Testez avec un filtre :

 Get-ADGroup -Filter * 

Ajout d'un filtre à la Cmdlet Get-ADGroup
Ajout d'un filtre à la Cmdlet Get-ADGroup

Et pour afficher notre groupe uniquement : Get-ADGroup -Filter * | Where-Object {$_.Name -eq “Support”}   .

Ajout d'un Where-Object à la Cmdlet
Ajout d'un Where-Object à la Cmdlet

Insérez les utilisateurs dans le groupe 

Avoir un groupe, c’est bien, avoir un groupe avec des utilisateurs dedans, c’est mieux ! Vous avez accès à la cmdlet Add-ADGroupMember pour insérer les utilisateurs dans un groupe. 

Essayez de mettre l’utilisateur “David Tennant” dans le groupe “Support”.

Add-ADGroupMember -Identity “Support” -Members “d.tennant” 

Ajout d'un utilisateur dans un groupe
Ajout d'un utilisateur dans un groupe

Tout comme précédemment, vous pouvez utiliser la cmdlet Get-ADGroupMember  pour  afficher la liste des utilisateurs dans le groupe Support :

Get-ADGroupMember “Support”

Utilisation de Get-ADGroupMember pour afficher la liste des utilisateurs
Utilisation de Get-ADGroupMember pour afficher la liste des utilisateurs

Et chose encore plus formidable que de sortir la liste des utilisateurs du groupe dans votre invite de commandes PowerShell, vous pouvez directement l’exporter dans un fichier CSV !

 Get-ADGroupMember “Support” | Export-Csv “C:\Scripts\groupeSupport.csv” -Encoding UTF8

 

Et comme souvent avec les cmdlets de récupération de données, n’hésitez surtout pas à jouer avec  Where-Object  ou  Select-Object  .

À vous de jouer !

En tant que technicien confirmé, vous souhaitez maintenant avoir un script complet de création d’utilisateur.

Reprenez le script de création d’utilisateur fait précédemment pour y intégrer la gestion du groupe de l’utilisateur.

Pensez à bien commenter votre script, et à utiliser des variables.

<#
Description : Script interactif de création d'utilisateur dans l'Active Directory
Usage : createUserGroup.ps1
    ATTENTION : Pour les prénoms/noms composés, bien mettre un trait d'union
Auteur : Stiven G.
Version 0.1
#>

#Récupération du nom
$nom = Read-Host "Merci de rentrer le prénom et de nom de l'utilisateur à créer"
$groupe = Read-Host "Merci de rentrer le groupe de l'utilisateur à créer"

#Génération du login
$initialePrenom = $nom.Substring(0,1) #On prend la première lettre du prénom
$nomFamille = $nom.Split(" ")[1] #On récupère le nom de famille
$loginGenere = $initialePrenom+"."+$nomFamille #Concaténation de la première lettre du prénom avec le nom de famille
$loginGenere = $loginGenere.ToLower() #On met le tout en minuscules

#Mettre un mot de passe par défaut
$motDePasse = "Password1!"`

Try {
    New-ADUser -Name $nom `
    -SamAccountName $loginGenere `
    -UserPrincipalName $loginGenere@etcomment.fr `
    -AccountPassword (ConvertTo-SecureString -AsPlainText $motDePasse -Force) `
    -Enabled $true
    Write-Host "L'utilisateur $nom a été créé dans l'AD"
    }
Catch {
    Write-Host "Une erreur est apparue à la création de l'utilisateur : "$_
    }

Try {
    Add-ADGroupMember -Identity $groupe -Members $loginGenere
    Write-Host "L'utilisateur $nom a été ajouté au groupe $groupe"
    }
Catch {
    Write-Host "Une erreur est apparue à l'ajout de l'utilisateur $nom dans le groupe $groupe : "$_
    }

En résumé

  • La commande New-ADUserpermet d'ajouter un utilisateur dans l’Active Directory.

  • La commande  New-ADGroup  permet d'ajouter un groupe dans l’Active Directory.

  • La commande  Add-ADGroupMember  permet d’insérer des utilisateurs dans un groupe Active Directory.

  • Les commandes   Get-ADUser  ,   Get-ADGroup  et   Get-ADGroupMember  permettent de lister les informations des utilisateurs et des groupes de l’Active Directory.

  • Et surtout, vous savez réaliser vos premiers scripts PowerShell !

Vous maîtrisez maintenant la gestion de votre Active Directory via l’utilisation de script PowerShell. Vous allez maintenant terminer par l’automatisation et la planification de tâches de sauvegarde.

Exemple de certificat de réussite
Exemple de certificat de réussite