Création compte utilisateur AD
Bonjour,
Je suis actuellement en stage et l'un de mes projets est de créer automatiquement des utilisateurs qui seront mit au bon endroit dans l'Active Directory via un script PowerShell avec un MDP généré aléatoirement, et en ajoutant l'utilisateur dans un ou plusieurs groupe(s)
Je sollicite votre aide sur mon script que j'ai pondu sur plusieurs points, en espérant que vous puissiez m'éclairer.
Le code commence de cette façon:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
foreach ($user in $users)
{
$prenom = $user.prenom
$nom = $user.nom
$sousgroupe = $user.sousgroupe
$login = $user.prenom + "." + $user.nom
$nomcomplet = $user.prenom + " " + $user.nom
$petitprenom = $prenom.Substring(0,1)
$petitnom = $nom.Substring(0,1)
$initiale = $petitprenom + $petitnom |
I)L'utilisation d'un switch pour placer mon utilisateur au bon endroit
Selon l'information rentré dans le fichier CSV, l'utilisateur sera créé au bon endroit car il y a des OU dans des OU
Exemple :
Code:
1 2 3 4 5 6 7 8
|
switch($user.OU)
{
"Admins" {$OU = "OU=Admins, OU=Users, OU=Entreprise, DC=entreprise, DC=lgn"}
"DefaultRacine" {$OU = "OU=Default, OU=Users, OU=Entreprise, DC=entreprise, DC=lgn"}
"Default3741" {$OU = "OU=3741, OU=Default, OU=Users, OU=Entreprise, DC=entreprise, DC=lgn"}
etc |
II)J'ai du mal à utiliser la fonction de recherche pour savoir si l'utilisateur existe déjà ou non
Si l'utilisateur qu'on crée a le même nom + prénom que celui dans la base alors on passe à la création de l'utilisateur suivant
Si l'utilisateur été déjà créé auparavant, on devra récupérer son numéro de matricule en la stockant dans $nummat
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
$SearchUser = Get-ADUser -Filter {SamAccountName -eq $login} -SearchBase $OU
if ($SearchUser -ne $login)
{
Write-Host "L'utilisateur n'existe pas, création.."
}
else
{
Write-Host "L'utilisateur " + $nomcomplet + " " + $nummat + " existe déjà*"
continue
} |
III)Je voudrais savoir comment utiliser la fonction Add-ADGroupeMember car les groupes sont mit dans des OU qui sont eux mêmes dans des OU car il y a une centaine de groupe
Code:
1 2 3 4 5 6 7 8 9 10
|
if ($sousgroupe -contains "AD01")
{
Add-ADGroupMember -Identity GG_Extenda_Project_Admins -Path "OU=Admins, OU=Groups, OU=Entreprise, DC=entreprise, DC=lgn" -Members $login
}
if ($sousgroupe -contains "AD02")
{
Add-ADGroupMember -Identity GG_Glory_Project_Admins -Path "OU=Admins, OU=Groups, OU=Entreprise, DC=entreprise, DC=lgn" -Members $login
}
etc.. |
IV)Et enfin essayer de se connecter pour vérifier s'il a bien été créé
Code:
1 2 3 4 5 6 7 8 9 10 11
|
try
{
New-ADUser -Name $nomcomplet -SamAccountName $login -UserPrincipalName $login -DisplayName $nomcomplet -GivenName $prenom -Surname $nom -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -Path $OU -Enabled $true
echo "Utilisateur ajouté :" + $nomcomplet " et le mot de passe: " + password
}
catch
{
echo "Utilisateur non ajouté :" + $nomcomplet
} |
Merci d'avance pour la lecture de ce post et vos réponses s'il y en a :)
En vous souhaitant une bonne journée