PowerShell & Active Directory: Créer son labo à partir de données de productions

mai 8, 2012
Lors de mes différents développements, il m’est arrivé régulièrement de devoir exporter des données de production et de les importer dans mon lab. De cette manière, je suis certains de pourvoir réellement être libre de tout casser sans impacter qui que ce soit. En d’autres mots, grâce à un lab représentatif, il est aisé de fournir des outils robustes et de qualités une fois en production.

Partons du scénario suivant, vous avez besoin de récupérer les groupes d’une OU particulière de votre AD de production et de les réimporter dans votre Labo.

Voici 2 exemples de scripts:

1. Export

Dans celui-ci, nous allons récupérer l’ensemble des groupes d’une OU particulière et ne garder que les propriétés qui nous intéresse (Nom, Description et Chemin LDAP). Le tout sera exporté dans un fichier CSV.

$objDomain = [ADSI]'LDAP://OU=Division1,OU=Marketing,DC=LAB,DC=TEST' $objRecherche = New-Object System.DirectoryServices.DirectorySearcher($objDomain) $objRecherche.filter = "(&(objectClass=group))" $objRecherche.SearchScope = [System.DirectoryServices.SearchScope]::Subtree $objColl = $objRecherche.FindAll() if ($objColl){ foreach ($grp in $objColl){ [String]$gName = $grp.Properties.name [String]$gDescription = $grp.Properties.description [String]$gPath = $grp.Properties.adspath "$gName;$gDescription;$gPath" >> C:\Temp\export_grp2.csv } }

2. Import

Avant de lancer l’importation des données, éditez le fichier export_grp2.csv et ajouter en première ligne ceci:

Name;Description;Path

Il n’y a plus qu’à importer les données en labo

$oColl = import-csv -path c:\Temp\export_grp2.csv -delimiter ";"
foreach ($grp in $oColl){
    $gName = $grp.Name
    $gDescr = $grp.Description
    $gPath = $grp.Path
    $ou = [ADSI]'LDAP://OU=Division1,OU=Marketing,DC=LAB,DC=TEST'
    $oGroup = $ou.Create('group',"cn=$gName")
    $oGroup.Put('samaccountname',"$gName")
    $oGroup.Put('description',"$gDescr")
    $oGroup.SetInfo()
}

 

Enjoy !!!

Badack

It's only fair to share...Share on Facebook

Leave a Reply