Importer des utilisateurs LDAP dans l’Active Directory

AD-and-LDAP

id-2958201-5315.powershell-logo.gif-550x0-100601604-origEn entreprise, dans le milieu de l’Enseignement Supérieur et la Recherche, il n’est pas rare d’avoir 2 environnements concomitant. Dans ce type de cas de figure, vous pouvez être amené à avoir des utilisateurs qui utilisent indifféremment les outils Linux et Windows. Pour cela, il peut être nécessaire d’importer les utilisateurs inscris dans l’annuaire LDAP vers l’Active Directory. On peut le faire à la main (où recruter un stagiaire voire un CDD pour faire le boulot), ou faire cela automatiquement avec un script powershell.

Je pars d’un export de l’annuaire au format csv. On peut toujours le faire avec un fichier ldif mais la méthode est différente.

ldap

Voici mon script brut de fonderie (il n’est pas dans les règles de l’art) :
# Import module active directory pour lancer cmdlets AD
Import-Module activedirectory

$ADServer = "dc2.deployadmin.com"

$SearchLoc ="CN=users,Dc=deployadmin,DC=com"
#Store the data from ADUsers.csv in the $ADUsers variable

#$csvreportfile = $path + "\ALLADUsers_$reportdate.csv"
$csvreportfile = "C:\Users\Administrateur\Documents\ldap.csv"

# $ADUsers = Import-csv .\ADUsers.csv

$ADUsers = Import-csv $csvreportfile

#Une boucle foreach pour parcourir le fichier csv
foreach ($User in $ADUsers)

{
$Username = $User.uid
# On peut récupérer la chaine de caractère du champs userpassword "tel quel"
# du fichier csv
# $Password = $User.userpassword
# Ou définir un password par défaut.
$Password = "7azyP@ssuw0rdu!"
$Firstname = $User.givenname
$Lastname = $User.sn
$UserMailName = $User.mail
# $OU = OU où doit être enregistrer les utilisateurs
$OU = "Dc=deployadmin,DC=com"
$path="CN=users,Dc=deployadmin,DC=com"

#On vérifie si l'utilisateur existe déjà dans l'AD
if (Get-ADUser -F {SamAccountName -eq $Username})
{
#Si l'utilisateur existe, affiché un Warning
Write-Warning "A user account with username $Username already exist in Active Directory."
}

else
{
# Si l'utilisateur n'est pas dans l'AD, on crée le compte
# Le compte sera créée dans l'OU fourni dans la variable $OU
New-ADUser `
-SamAccountName $Username `
-UserPrincipalName $UserMailName `
-Name "$Firstname $Lastname" `
-GivenName $Firstname `
-Surname $Lastname `
-EmailAddress $UserMailName `
-Enabled $True `
-DisplayName "$Lastname $Firstname" `
-Path $path `
-AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
-ChangePasswordAtLogon $true `
-passThru
# -PasswordNeverExpires $true `
# -ChangePasswordAtLogon $true `
# -passThru | Set-ADUser -ChangePasswordAtLogon:$true
# -passThru (Set-ADUser -ChangePasswordAtLogon:$true)
# -passThru `
}
}

# memo pour commande New-ADUser

# New-ADUser -Name portail -AccountPassword LaZ1P@$uw0rdu_ka! -Country France
# -DisplayName "William Portail" -EmailAddress william.portail@fenetres.fr
# -SamAccountName portailw

# New-ADUser -Name portail -AccountPassword EaZ1P@$w00rd! -ChangePasswordAtLogon
# $true -Country France -DisplayName "William Portail" -EmailAddress
# william.portail@windows.10 -GivenName "William Portail" -PasswordNeverExpires
# $true -PasswordNotRequired $false -Path Dc=deployadmin,DC=com -SamAccountName
# portailw

La prochaine étape. Automatisé l’import des utilisateurs LDAP dans l’AD par une tâche planifié.

Cet article, publié dans Active Directory, AD DS, Deploiement, Migration, Powershel, PowerShell, Server 2016, Server 2019, Tips, Windows 10, Windows Server, est tagué , , , , , , , , , , , , , , , , , , . Ajoutez ce permalien à vos favoris.

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s