Importer des utilisateur d’un LDAP vers un Active Directory

Il est courant d’avoir un LDAP pour les utilisateur Linux/*nix et un Active Directory pour les utilisateurs sous Windows. Parfois, c’est intéressant d’exporter les utilisateurs du ldap avec quelques infos pour les importer vers l’active directory.

Voici un exemple de fichier qui permet de faire cela. Le fichier a été nettoyé d’informations de mon infra du boulot mais l’idée est là et ça fonctionne. Dans mon cas, il fonctionne de manière quotidienne. Il est lancé par une tâche planifiée.

Avec quelques notions en POSH aka Powershell vous pourrez l’améliorer et le modifier à votre convenance.

# Importer le module active directory pour utiliser les cmdlets AD 
Import-Module activedirectory

#copier le fichier csv du ldap ou d'une ressource partagée sur le réseau à partir d'une url

Invoke-WebRequest -Uri "http://intra.deployadmin.com/ldap/ldap.csv" -OutFile "C:\ldap2adds\ldap.csv"

#Chemin complet du path
$pathldap2adds = "C:\ldap2adds"
$SourceFilePath = "C:\ldap2adds\ldap.csv" 

# $ADServer = "ad3.deployadmin.com"
# $csvreportfile = $SourceFilePath

$SearchLoc ="CN=users,Dc=deployadmin,DC=com"

$ADServer = "ad4.deployadmin.com"
# Diverses informations utiles 

# Stocker les données de ldap.csv dans la variable $ADUsers
 
# Une boucle sur chaque ligne utilisateur contenant les infos de l'utilisateur dans le fichier csv  

$ADUsers = Import-csv $SourceFilePath -Delimiter "|"
foreach ($User in $ADUsers)
{
	$Username = $User.uid
	$Password 	= "c6nW484EiFX3"
    $Firstname = $User.givenname
    $Lastname = $User.sn
    $UserMailName = $User.mail
    $OU 		= "Dc=deployadmin,DC=com" 
    $path="CN=Users,Dc=deployadmin,DC=com"

	if (Get-ADUser -F {SamAccountName -eq $Username})
	{
     #Si l'utilisateur existe envoyer un warning
		 Write-Warning "le compte utilisateur avec le nom d'utilisateur $Username existe déjà dans l'Active Directory."
	}
	else
	{
    #Si l'utilisateur n'existe pas alors creer le compte utilisateur
		
        # Le compte sera cree dans l'OU fourni par 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 `
            
             
	}
}

# Feature : sauvegarde du fichier ldap.csv avec la date du jour d'importation

$DateNow = Get-Date -Format "yyyyMMdd" #Date 20210224

$FileName = [io.path]::GetFileNameWithoutExtension($SourceFilePath) #Récupérer le nom de fichier sans son extension
$FileExtension = [io.path]::GetExtension($SourceFilePath) 
#Récuperer l'extension du fichier

Rename-Item -Path $SourceFilePath -newname $FileName$DateNow$FileExtension #Rename filename

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

Votre commentaire

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