Meilleur auteur de réponses
Créer des groupes à partir d'un fichier CSV

Question
-
Bonjour,
J'ai un fichier CSV avec des utilisateurs et des branches d'une entreprise (service info, comm, etc...)
Je souhaiterai que lorsque j'exécute le script, si la branche n'existe pas, alors elle soit créée en tant que groupe.
Avez-vous une solution ?
Par avance, merci.
R.
Réponses
-
Bonsoir
voici un script complet basé sur votre fichier, en supposant que "Name" correspond au login (SamAccountName)
$users = import-csv -path "users.csv" -delimiter ";" #On boucle sur chaque user foreach($user in $users) { $fname= $user.Fname $name= $user.Name $office= $user.Office $pass= $user.pass $dpt= $user.dpt $usr=get-aduser -Filter { samaccountname -eq $name} if ($usr){ echo "Utilisateur $usr existe déjà"} Else { $passSecured=ConvertTo-SecureString -String $pass -AsPlainText new-AdUser -name "$fname" -samaccountname $name -office $Office -AccountPassword $passSecured echo "Utilisateur $name créé" } $grp=get-adgroup -Filter { samaccountname -eq $dpt} if ($grp) { echo "Groupe $dpt trouvé" } else { $grp=new-adgroup -Name $dpt -SamAccountName $dpt -GroupCategory Security -GroupScope Global echo "Groupe $dpt créé" } echo "Ajout de l'utilisateur $name dans le groupe $dpt" add-AdGroupMember $dpt -members $name }
Ce script créée le compte dans le conteneur par défaut s'il n'existe pas dans l'AD.
Le groupe est créé s'il n'existe pas.
L'utilisateur est ajouté dans le groupe dans tous les cas.
A bientôt,
Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info
- Proposé comme réponse Thierry DEMAN-BARCELÒMVP samedi 6 août 2016 21:37
- Marqué comme réponse Veselin AndasarovModerator vendredi 26 août 2016 06:36
Toutes les réponses
-
Bonsoir,
il n'y a pas de problème particulier à créer des groupes à partir d'un fichier texte. Les exemples sont nombreux!
Quel est le format du fichier texte?
A+
Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info
-
Bonjour,
Merci pour votre réponse :-)
C'est un fichier .csv
Les libellés sont FName;Name;Office;pass;dpt
Je vais importer classiquement chaque ligne.
Pour le champ "dpt", je souhaiterai que Windows me créé un groupe, si ce groupe n'existe pas déjà, et qu'il inclut le user dedans.
Pour le code de base, je fais :
$users = import-csv -path "users.csv" -delimiter ";" #On boucle sur chaque user foreach($user in $users) { $fname= $user.Fname $name= $user.Name $office= $user.Office $pass= $user.pass $dpt= $user.dpt #C'est ici que je souhaiterais rajouter la création ou l'intégration d'un groupe }
Une idée ?
Merci
R.
-
-
Merci pour votre retour.
La console me retourne "Impossible de trouver l'objet". Je ne vois pas ce qui bloque.
En fait, j'ai mon domaine avec différentes OU.
L'OU "Employés" est divisée en différentes OU villes (Paris, LA, Tokyo, Rio).
Chaque OU ville disposes de différents groupes qui doivent être créés via le fichier CSV.
Une idée ?
Merci
-
Bonsoir
voici un script complet basé sur votre fichier, en supposant que "Name" correspond au login (SamAccountName)
$users = import-csv -path "users.csv" -delimiter ";" #On boucle sur chaque user foreach($user in $users) { $fname= $user.Fname $name= $user.Name $office= $user.Office $pass= $user.pass $dpt= $user.dpt $usr=get-aduser -Filter { samaccountname -eq $name} if ($usr){ echo "Utilisateur $usr existe déjà"} Else { $passSecured=ConvertTo-SecureString -String $pass -AsPlainText new-AdUser -name "$fname" -samaccountname $name -office $Office -AccountPassword $passSecured echo "Utilisateur $name créé" } $grp=get-adgroup -Filter { samaccountname -eq $dpt} if ($grp) { echo "Groupe $dpt trouvé" } else { $grp=new-adgroup -Name $dpt -SamAccountName $dpt -GroupCategory Security -GroupScope Global echo "Groupe $dpt créé" } echo "Ajout de l'utilisateur $name dans le groupe $dpt" add-AdGroupMember $dpt -members $name }
Ce script créée le compte dans le conteneur par défaut s'il n'existe pas dans l'AD.
Le groupe est créé s'il n'existe pas.
L'utilisateur est ajouté dans le groupe dans tous les cas.
A bientôt,
Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info
- Proposé comme réponse Thierry DEMAN-BARCELÒMVP samedi 6 août 2016 21:37
- Marqué comme réponse Veselin AndasarovModerator vendredi 26 août 2016 06:36
-
Super Merci :-)
Je souhaiterais ajouter ces users et ces groupes dans des OU spécifiques.
Sur la ligne
new-AdUser
J'ajoute donc :
-Path "OU=MonOU"
Mais j'obtiens une erreur à la fin de ma requête "ObjectNotFound".
Si je mets :
-Path 'OU=MonOU,OU=UneSousOU'
Je pourrais ajouter des éléments dans des sous OU ?
Je n'ai pas trouvé s'il était possible d'attribuer plusieurs groupes à un user ?
Merci de votre aide
R.
-
Bonsoir,
pour les OUs, il faut indiquer le chemin complet...
Exemples de chemin complet :
'CN=Users,DC=fabrikam,DC=local' (conteneur par défaut)
'OU=MonOU,DC=fabrikam,DC=local'
'OU=UneSousOU,OU=MonOU,DC=fabrikam,DC=local'
On peut bien entendu mettre l'utilisateur dans un tas de groupes.... Le plus dur est de déterminer le format de fichier à mettre en œuvre pour cela.
A bientôt,
Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info
- Proposé comme réponse Thierry DEMAN-BARCELÒMVP mercredi 10 août 2016 21:20
-
-