• 4 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 23/09/2019

Automatisez la configuration d’Active Directory avec PowerShell

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Ça y est, nous rentrons dans le vif du sujet, les scripts ! Dans ce chapitre, nous allons créer un utilisateur avec PowerShell, puis nous utiliserons des scripts pour automatiser cette tâche. C'est parti !

Créez un utilisateur et activez un utilisateur avec PowerShell

Normalement, vous devriez avoir ceci dans Utilisateurs et ordinateurs Active Directory :

Contenu de votre Active Directory

La commande New-ADUser permet de créer un utilisateur avec PowerShell ; en voici un exemple qui permet de créer un utilisateur avec ces propriétés : 

  • login : lombard ;

  • mail : lombard@lavachette.com ;

  • mot de passe : Pwd2019 ;

  • pas d’expiration du mot de passe ;

  • ne peut pas changer son mot de passe.

New-ADUser -Name "LOMBARD Joël" -SamAccountName lombard -UserPrincipalName "lombard@lavachette.com" -AccountPassword (ConvertTo-SecureString -AsPlainText Pwd2019 -Force) -PasswordNeverExpires $true -CannotChangePassword $true

Remarque : je ne mettrai plus le chemin PS au début de chaque commande, j’espère que vous avez fini par comprendre que l’on ne faisait que des commandes PowerShell 😂 !

Super, j’ai créé mon premier utilisateur avec Powershell, et il a été créé dans l’unité d’organisation Users :

Vous devriez avoir un utilisateur en plus !
Vous devriez avoir un utilisateur en plus !

Ah mince, 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 commande PowerShell suivante :

PS C:\Users\Administrateur> Enable-ADAccount lombard

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 !

Utilisateur activé dans Active Directory
Utilisateur activé dans Active Directory

Bon, c’est cool mais moi, je voudrais des utilisateurs dans mon domaine et je suis très fainéant... Du coup, j’ai récupéré la liste des utilisateurs, les voici :

Utilisateurs

Logins

Mots de passe

LOMBARD Joël

lombard

Pwd2019

BLANC Luc

luc

Pwd2019

TAP Vincent

vincent

Pwd2019

DIN Christelle

christelle

Pwd2019

GERS Arnaud

arnaud

Pwd2019

TRESSA Karine

karine

Pwd2019

FREI Michel 

michel

Pwd2019  

Bon, elle est sympa la commande pour créer les utilisateurs, mais comme j’ai peur de faire des erreurs, je vais automatiser tout ceci et il va falloir que je crée mon premier script. Allons-y 😁 !

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

Bon, on se lance. On va réutiliser tout ce que l’on a vu avant, rien de plus. Donc on va faire un petit script qui va effectuer les étapes suivantes :

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

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

2. Demander le login de l’utilisateur :

$login = Read-Host "Merci de Rentrer le Login de l’Utilisateur à Créer"

3. Demander le mot de passe de l’utilisateur :

$mdp = Read-Host "Merci de Rentrer le Mot de Passe de l’Utilisateur à Créer"

4. Créer l’Utilisateur :

New-ADUser -Name $nom -SamAccountName $login -UserPrincipalName $login@lavachette.com -AccountPassword (ConvertTo-SecureString -AsPlainText $mdp -Force) -PasswordNeverExpires $true -CannotChangePassword $true -Enabled $true

Bon, ben génial mais comment je le crée, ce script 🤔 ? 

Pour cela, il suffit de le faire avec Notepad et de l’enregistrer en  script_user.ps1. Ouvrez le Notepad avec la commande  Notepad.exe.

# Contenu de script_user.ps1
$nom = Read-Host "Merci de Rentrer le Nom et le Prénom de l’Utilisateur à Créer"
$login = Read-Host "Merci de Rentrer le Login de l’Utilisateur à Créer"
$mdp = Read-Host "Merci de Rentrer le Mot de Passe de l’Utilisateur à Créer"
New-ADUser -Name $nom -SamAccountName $login -UserPrincipalName $login@lavachette.com -AccountPassword (ConvertTo-SecureString -AsPlainText $mdp -Force) -PasswordNeverExpires $true -CannotChangePassword $true -Enabled $true

On peut voir notre script qui a bien été créé et on peut voir également sa taille en octets :

-a----       06/07/2019     20:53            451 script_user.ps1

Ensuite, il suffit de lancer le script avec la commande  powershell .\script_user.ps1.

Le script va alors vous demander d'entrer chacune des informations pour chaque utilisateur que vous voulez créer. Entrez-les en suivant la liste ci-dessus, vous devriez avoir quelque chose qui ressemble à ça :

PS C:\Users\Administrateur> powershell .\script_user.ps1
Merci de Rentrer le Nom et le Prénom de l'Utilisateur à Créer : BLANC Luc
Merci de Rentrer le Login de l'Utilisateur à Créer : luc
Merci de Rentrer le Mot de Passe de l'Utilisateur à Créer : Pwd2019

PS C:\Users\Administrateur> .\script_user.ps1 Merci de Rentrer le Nom et le Prénom de l'Utilisateur à Créer : TAP Vincent
Merci de Rentrer le Login de l'Utilisateur à Créer : vincent
Merci de Rentrer le Mot de Passe de l'Utilisateur à Créer : Pwd2019

PS C:\Users\Administrateur> .\script_user.ps1 Merci de Rentrer le Nom et le Prénom de l'Utilisateur à Créer : DIN Christelle
Merci de Rentrer le Login de l'Utilisateur à Créer : christelle
Merci de Rentrer le Mot de Passe de l'Utilisateur à Créer: Pwd2019

PS C:\Users\Administrateur> .\script_user.ps1 Merci de Rentrer le Nom et le Prénom de l'Utilisateur à Créer : GERS Arnaud
Merci de Rentrer le Login de l'Utilisateur à Créer : arnaud
Merci de Rentrer le Mot de Passe de l'Utilisateur à Créer: Pwd2019

PS C:\Users\Administrateur> .\script_user.ps1 Merci de Rentrer le Nom et le Prénom de l'Utilisateur à Créer : TRESSA Karine
Merci de Rentrer le Login de l'Utilisateur à Créer : karine
Merci de Rentrer le Mot de Passe de l'Utilisateur à Créer: Pwd2019

PS C:\Users\Administrateur> .\script_user.ps1 Merci de Rentrer le Nom et le Prénom de l'Utilisateur à Créer : FREI Michel
Merci de Rentrer le Login de l'Utilisateur à Créer : michel
Merci de Rentrer le Mot de Passe de l'Utilisateur à Créer: Pwd2019

Votre Active Directory devrait maintenant ressembler à ça :

Votre Active Directory avec tous les utilisateurs que vous avez créés
Votre Active Directory avec tous les utilisateurs que vous avez créés

On peut utiliser une commande PowerShell pour Afficher les utilisateurs créés en tapant la commande  Get-ADUser -Filter *  ou  Get-ADUser -Filter * | select samAccountName

PS C:\Users\Administrateur> Get-ADUser -Filter * | select samAccountName

samAccountName
--------------
Administrateur
Invité
krbtgt
lombard
vincent
christelle
arnaud
karine
michel
luc

On peut utiliser d’autres arguments avec  -Filter  comme ceci : 

PS C:\Users\Administrateur> Get-ADUser -Filter * | select Name, samAccountName, UserPrincipalName

Name           samAccountName UserPrincipalName
----           -------------- -----------------
Administrateur Administrateur
Invité         Invité
krbtgt         krbtgt
fabrice        fabrice        fabrice@lavachette.com
LOMBARD Joël   lombard        lombard@lavachette.com
TAP Vincent    vincent        vincent@lavachette.com
DIN Christelle christelle     christelle@lavachette.com
GERS Arnaud    arnaud         arnaud@lavachette.com
TRESSA Karine  karine         karine@lavachette.com
FREI Michel    michel         michel@lavachette.com
BLANC Luc      luc            luc@lavachette.com

Et on peut même générer un fichier texte avec nos différents filtres comme ceci :

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

On peut maintenant ouvrir notre fichier créé avec la commande  Notepad.exe UserAdUTF8.csv

Liste des utilisateurs exportée dans un fichier
Liste des utilisateurs exportée dans un fichier

Créez un script de création et gestion de groupes

Allez, nous allons faire évoluer notre société en ajoutant des groupes et en insérant nos utilisateurs dans les groupes créés. Voici ce que nous voulons comme structure des groupes :

Groupes

Utilisateurs

Logins

PDG

LOMBARD Joël

Lombard

COM

BLANC Luc

TAP Vincent

Luc

Vincent

COMPT

DIN Christelle

GERS Arnaud

Christelle

Arnaud

SEC

TRESSA Karine

FREI Michel

Karine

Michel

Notre script effectuera donc les étapes suivantes :

1. Demander le nom du groupe à créer et créer le groupe :

On utilisera la commande New-ADGroup pour créer un groupe dans Active Directory.

$groupe = Read-Host "Merci de Rentrer le Nom du Groupe à Créer"
New-ADGroup $groupe -GroupScope Global

2. Demander le nombre d’utilisateurs à insérer dans le groupe :

[int] $nombre = Read-Host "Merci de Rentrer le Nombre d’Utilisateurs à Insérer dans le Groupe"

3. Demander le nom des utilisateurs à insérer dans le groupe :

$nom = Read-Host "Merci de Rentrer le Nom de l’Utilisateur à Insérer dans le Groupe $groupe"

4. Insérer les utilisateurs dans le groupe :

Nous utiliserons la commande Add-ADGroupMember pour insérer les utilisateurs dans un groupe. 

Add-ADGroupMember -identity $groupe -Members $nom

Bon, c’est très bien tout cela, mais il manque quelque chose : une structure de contrôle pour réaliser une boucle en fonction du nombre d’utilisateurs à insérer dans le groupe. 

Allez, je vous aide, voici notre script  script_groupe.ps1  et on utilisera Windows PoserShell ISE pour réaliser ce script à partir de maintenant :

# Contenu de script_groupe.ps1
$groupe = Read-Host "Merci de Rentrer le Nom du Groupe à Créer"
New-ADGroup $groupe -GroupScope Global
[int] $nombre = Read-Host "Merci de Rentrer le Nombre d’Utilisateurs à Insérer dans le Groupe"
for ($i=1; $i -le $nombre; $i++)
{
$nom = Read-Host "Merci de Rentrer le Nom de l’Utilisateur à Insérer dans le Groupe $groupe"
Add-ADGroupMember -identity $groupe -Members $nom
Write-Host "L’Utilisateur $nom a Bien Eté Inséré dans le Groupe $groupe."
}
Votre script de création de groupes sur PowerShell ISE
Votre script de création de groupes sur PowerShell ISE

Vous pouvez exécuter ce script avec cette console en cliquant sur la flèche verte :

Cliquez sur la flèche verte pour lancer l'exécution du script
Cliquez sur la flèche verte pour lancer l'exécution du script

Et voici l’exécution de l’ajout de 2 groupes avec 2 utilisateurs :

PS C:\Users\Administrateur> C:\Users\Administrateur\script_groupe.ps1
Merci de Rentrer le Nom du Groupe à Créer : COM
Merci de Rentrer le Nombre d'Utilisateurs à Insérer dans le Groupe : 2
Merci de Rentrer le Nom de l'Utilisateur à Insérer dans le Groupe PDG : luc
L'Utilisateur luc a Bien Eté Inséré dans le Groupe COM.
Merci de Rentrer le Nom de l'Utilisateur à Insérer dans le Groupe PDG : vincent
L'Utilisateur vincent a Bien Eté Inséré dans le Groupe COM.

PS C:\Users\Administrateur> 

L’utilisation de WindowsPowerShell ISE est bien intuitive car c’est comme un IDE, il permet de trouver les erreurs dans le code, et l’autocomplétion permet de taper plus vite et d’éviter les erreurs ; nous utiliserons Windows PowerShell ISE pour la suite de ce cours. Cependant, il est important de connaître l’édition de script PowerShell avec Notepad.exe, car certains serveurs sont installés sans interface graphique, mais Notepad.exe est toujours présent. 

Nous pouvons afficher nos groupes créés avec utilisateurs et ordinateurs Active Directory :

Vos utilisateurs et groupes créés sur Active Directory
Vos utilisateurs et groupes créés sur Active Directory

On peut utiliser cette commande pour afficher la liste de tous les groupes :

PS C:\Users\Administrateur> Get-ADGroup -Filter *

On peut utiliser cette commande pour afficher la liste des utilisateurs dans le groupe COMPT :

PS C:\Users\Administrateur> Get-ADGroupMember COMPT


distinguishedName : CN=DIN Christelle,CN=Users,DC=DAVID,DC=COM
name              : DIN Christelle
objectClass       : user
objectGUID        : b4ce7dce-8757-4021-aa5a-0de9d7efcb80
SamAccountName    : christelle
SID               : S-1-5-21-1794228856-519301800-261500123-1121

distinguishedName : CN=GERS Arnaud,CN=Users,DC=DAVID,DC=COM
name              : GERS Arnaud
objectClass       : user
objectGUID        : 8354055a-7dc4-47c7-9dfa-4bb29c90bae0
SamAccountName    : arnaud
SID               : S-1-5-21-1794228856-519301800-261500123-1122

On peut générer un fichier également comme ceci pour afficher les informations du groupe SEC

PS C:\Users\Administrateur> Get-ADGroupMember SEC | Export-Csv SEC.csv -Encoding UTF8

On peut générer un fichier également comme ceci pour afficher seulement les membres du groupe COM

PS C:\Users\Administrateur> Get-ADGroupMember COM | Select-Object name | Export-Csv COM.csv -Encoding UTF8
Membres du groupe COM exportés dans un fichier texte
Membres du groupe COM exportés dans un fichier texte

On peut également générer un fichier TRESSA.txt qui liste les groupes dont fait partie l’utilisateur TRESSA Karine

$user = Get-AdUser -Filter * -SearchBase "CN=TRESSA Karine, CN=Users, DC=DAVID, DC=COM" -Properties MemberOf
foreach($u in $user) {
$nom = $u.name
$membre = $u.memberof
Add-Content -Path "TRESSA.txt" -Value $nom
Add-Content -Path "TRESSA.txt" -Value $membre
}
Script de filtre des parcours de Karine sur PowerShell ISE
Script de filtre des parcours de Karine sur PowerShell ISE

Et voici le résultat :

Bon, ce n’est pas très parlant, mais si TRESSA Karine faisait partie de plusieurs groupes, les groupes dont elle fait partie seraient tous affichés dans ce fichier texte.

Allons, attaquons-nous maintenant aux scripts de sauvegarde, c’est le prochain chapitre.

Résumé

Dans ce chapitre, nous avons vu :

  • la commande  New-ADUser  qui permet d'ajouter un utilisateur dans l’Active Directory ;

  • la commande  New-ADGroup  qui permet d'ajouter un groupe dans l’Active Directory ;

  • la commande  Add-ADGroupMember  qui permet d’insérer des utilisateurs dans un groupe Active Directory ;

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

  • et nous avons surtout réalisé nos premiers scripts sous PowerShell !

Dans le prochain chapitre, nous allons voir comment automatiser des tâches de sauvegarde avec des scripts PowerShell.

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