Active Directory + script Powershell
L’objectif, ici est de créer un Active Directory sur une machine W2k8 à partir de la documentation
fourni sur la FOAD ainsi que nos propres recherches. Une liste d’utilisateurs est mit à disposition
pour créer l’AD.
Faire attention à quelques points…
Tout d’abord, pour pouvoir créer un script powershell, il faudra préalablement avoir le soin
d’installer Windows Powershell ISE qui est un logiciel permettant de créer des scripts powershell.
Ensuite, la liste d’utilisateurs fourni, ne contient pas toutes les informations nécéssaires. Par
exemple, il n’y a pas le nom des ligues dans lesquels ils appartiennent, et les mots de passe ne sont
pas assez sécurisé pour pouvoir être créé.
Enfin, la liste fourni est au format xlsx, il faudra donc au préalable changer celui ci pour le
passer au format csv, par exemple en passant par l’outil excel.
Création de l’active directory:
Pour créer un AD sur la machine windows server 2008 R2, exécuter dcpromo, puis cliquer sur
suivant jusqu’à ce que la création soit terminée. Le nom du domaine est ici [Link].
Powershell :
Pour pouvoir exécuter un script taper la commande (sans laquelle l’execution du script serait
impossible) :
set-executionPolicy unrestricted (ou remotesigned)
Début du script commenté :
import-module ActiveDirectory #Importe le module permettant de gérer l'AD via powershell
$utils = import-csv -path "C:\Users\Administrateur\Desktop\Utilisateurs_escrime.csv" -delimiter ";"
#Ouvre le fichier csv qui est dans le chemin indiqué. Chaque colonne est délimitée par ";"
foreach($ligne in $utils) #début de la boucle : pour chaque ligne du fichier, faire…
{
#initialisation : les variables prennent pour valeur les valeurs correspondantes du fichier
CSV
$nom = $[Link]
$prenom = $[Link]
$displayname = $[Link] +" "+ $[Link]
$login = $[Link]
$pass = $[Link]
$ligue = $[Link]
if((Get-ADOrganizationalUnit -Filter {Name -eq $ligue}) -eq $null) #Si l'unité
d'organisation concernée n'est pas présente, faire...
{
New-ADOrganizationalUnit -Name $ligue -Path "DC=JENSAIS,DC=RIEN" #Créer une
nouvelle OU avec pour nom la variable $ligue, dans le domaine [Link]
Write-Host "L'unité d'organisation"$ligue "a été créée" #Affiche un message disant que l'OU
a été créée
}
else #Sinon faire...
{
Write-Host "l'Unité d'organisation"$ligue " est déja présente" #Affiche un message disant
que l'OU est déjà présente
} #fin du if
If((Get-ADGroup –Filter {Name –eq $ligue}) –eq $null) #Si le groupe concerné n’est pas
présent, faire...
{
New-ADGroup $ligue –Groupscope Global #Créer un nouveau groupe ayant pour nom la
variable $ligue
}
if((Get-ADUser -Filter {sAMAccountname -eq $login}) -eq $null) #Si le compte concerné
n'est pas trouvé, faire...
{
new-aduser -name $displayname -surname $nom -givenname $prenom -displayname
$displayname -samaccountname $login -userprincipalname $login -accountpassword (convertto-
securestring $pass -asplaintext -force) -cannotchangepassword $true -enabled $true -Path
"OU=$ligue,DC=JENSAIS,DC=RIEN" #Créer un compte dans l'AD, dans l'OU de la variable
$ligue et dans le domaine [Link]. Le compte prendra comme configuration les
informations du fichier CSV
Write-Host "l'utilisateur"$login "a été créé" #Affiche un message disant que l'utilisateur
concerné a été créé
}
else #Sinon faire
{
Write-Host "utilisateur "$login " est déja créé" #Affiche à l'écran que l'utilisateur concerné
est déjà créé
} #Fin du if
Add-ADGroupMember $ligue $login #Ajoute le membre contenu dans la variable $login au groupe
ayant pour nom le contenu de la variable $ligue
Write-Host "intégration de "$login "dans le groupe" $ligue #Affiche à l’écran que l’utilisateur
concerné à bien été intégré dans le groupe concerné
} #Fin de la boucle
Test de l'active directory
Vérifier qu'un compte a bien été créé :
Repérer le login et mot de passe du compte.
Allumer une machine sous XP ou Seven intégrée au domaine.
Entrer le login et le mot de passe que vous avez repéré (précédé du nom de domaine s'il n'est
pas tapé par défaut).
Si vous pouvez vous connecté, le compte est bien valide et fonctionne.
Test du script powershell
Vérifier que les comptes du script ont bien été créés :
Repérer les utilisateurs du fichier CSV, ou deux qui devraient être créés par le script
Ouvrir le gestionnaire de serveur sur l'active directory
Vérifier la présence des ces utilisateurs dans ce dernier (vérifier, les unités d'organisation...)
Possibilité d'effectuer le test de l'active directory (ci dessus) avec un ou deux comptes.