PowerShell & Active Directory: Créer son labo à partir de données de productions
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
Leave a Reply