Question [Résolu] Importer les users, OU et groupes vers AD

Plus d'informations
il y a 9 ans 7 mois #22147 par Toto JDD
Bonjour,

Je suis un débutant en powershel et je voulais savoir comment on importe un les users, les OU et groupes à partir d'un fichier .csv
Voici la structure du fichier users.csv se trouvant sur l'emplacement E:\Data\users.csv

Nom;Prenom;OU;Groupe
Jean;Barth;Bruxelles;Comptabilité
Germaine;Furah;Liège;Direction
Marie;Reine;Bruxelles;Logistique
Nathan;Yves;Bruxelles;Comptabilité
Jacques;Juan;liège;Logistique
Fidel;Jan;Bruxelles;Direction
Janvier;Mathieu;Namur;Comptabilité
Edmon;Emile;Liège;Comptabilité
Raoul,Steve;Namur;Direction
Ibrahim;Loic;Namur;comptabilité
Alexadre;Barth;Liège;Logistique
Joel;Julie;Namur;Logistique

Ma préoccupation est d'avoir un script qui me permet de :
1. Créer les OU Bruxelles, Namur et Liège dans \"OU=Region,DC=domaine,DC=Com\"

2. Affecter les users dans les OU et groupes auxquels ils appartiennent
Ex : les users Jean, Nathan, Marie et Fidel dans l'OU Bruxelles; Jean et Nathan dans le groupe Comptabilité de Bruxelles, Marie dans le groupe Logistique de Bruxelles et Fidel dans le groupe Direction de Bruxelles. Idem pour les autres OU

Merci de vos orientations et entraides.
TOTO JDD<br><br>Message édité par: Arnaud, à: 30/08/16 14:50

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 7 mois #22149 par Philippe
Toto écrit:

Bonjour,

Je suis un débutant en powershel et je voulais savoir comment on importe un les users, les OU et groupes à partir d'un fichier .csv

Merci de vos orientations et entraides.
TOTO JDD

bonjour et bienvenue

tu nous a pas indiqué si tu te débrouillé en programmation/script !?
il nous faut aussi la version de PowerShell et de ton serveur AD

pour info si tu utilise un serveur ad en 2008R2 tu peut utilisé les commandes suivante :
New-AdUser pour la creation d'un utilisateur, tu trouvera des exemples d'utilisation à la fin de la page
Add-ADGroupMember pour l'ajout d'un utilisateur dans un groupe, tu trouvera aussi des exemples

les exemples pour ce que tu demande ne manque pas sur ce forum ou sur d'autre, mais je t'es choisir celui ci qui regroupe la creation d'un utilisateur qui obligatoirement ce trouve dans une OU (attention de donné le distinguishedName complet de l'OU) et l'ajout d'un utilisateur dans un groupe
a toi de l'adapté en fonction de tes besoins

nous somme dispo pour t'aidé à corrigé ton premier script ! :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 7 mois #22150 par Toto JDD
Merci bcp Karma pour tonfeedback.
Au fait, j'ai des notions très basic en programmation. J'utilise windows server 2012 R2 sur l'AD, et j'utilise powershell ISE.

Voici le scripte que je puis concevoir :

[code:1]Import-Module ActiveDirectory

$users = Import-Csv -Delimiter \&quot;;\&quot; -Path \&quot;E:\Data\users.csv\&quot;

foreach ($temp in $users) {
$name = $temp.Nom + \&quot; \&quot; + $temp.Prenom
$fName = $temp.Nom
$firstLetterName = $fName.substring(0,1)
$SAM = $firstLetterName + $temp.Prenom
$dep = $itemp.Groupe
switch ($temp.OU){

\&quot;Bruxelles\&quot; { $ou = \&quot;OU=Bruxelles,OU=Region,DC=domaine,DC=com\&quot; }
\&quot;Namur\&quot; { $ou = \&quot;OU=Londres,OU=Region,DC=domaine,DC=com\&quot; }
\&quot;Liège\&quot; { $ou = \&quot;OU=Berlin,OU=Region,DC=domaine,DC=com\&quot; }

default { $ou = $null }
}

if ($ou -ne $null) {

try {

New-ADUser -Name $name -SamAccountName $SAM -UserPrincipalName $SAM -DisplayName $name -GivenName $fName -Surname $temp.Prenom -Enabled $true -Path $ou
write-host \&quot;Utilisateur ajouté : $name\&quot;
}
catch {

write-host \&quot;Utilisateur non ajouté : $name\&quot;
}
}
}

$groupe = Import-Csv -Delimiter \&quot;;\&quot; -Path \&quot;E:\Data\users.csv\&quot;

foreach ($itempo in $groupe) {
$dep = $itempo.Groupe
switch ($itempo.OU){

\&quot;Bruxelles\&quot; { $ou = \&quot;OU=Bruxelles,OU=Region,DC=domaine,DC=com\&quot; }
\&quot;Namur\&quot; { $ou = \&quot;OU=Londres,OU=Region,DC=domaine,DC=com\&quot; }
\&quot;Liège\&quot; { $ou = \&quot;OU=Berlin,OU=Region,DC=domaine,DC=com\&quot; }

default { $ou = $null }
}

If((Get-ADGroup -Filter {Name -eq $dep}) -eq $null){
if ($ou -ne $null) {

try {

New-ADGroup -Name $dep -Path $ou -GroupScope Global
write-host \&quot;La création du groupe: $dep\&quot;

}
catch {

write-host \&quot;Le groupe non ajouté : $dep\&quot;
}
}
}
}[/code:1]


Ce scripte ajoute les utilisateurs dans l'OU auxquelles ils appartiennent et créer seulement les groupes Comptabilité, Logistique et Direction dans l'OU Bruxelles sans les ajouter dans les OU Namur et Liège.

Comment faire pour que ce scripte creer les meme groupes créer dans l'OU Bruxelles dans les autres OU (Namur et Liège)?
Peut-on aussi ajouter qui permet d'affecter chaque users dans le groupe auquel i appartient en fonction de son OU?

Ce scripte est le fruit de la documentation faite sur ce plateforme. Merci encore une fois.

Merci encore une fois de m'orienter.
TOTO JDD<br><br>Message édité par: Toto , à: 18/08/16 16:43

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 7 mois #22154 par Philippe
salut toto
pour info moi c'est 6ratgus :P

peut tu aussi nous aider en mettant les balises code sur les parties scripts de ton message, stp.
Ca nous facilite le travail de lecture de ton code !
pour ça tu surligne ton code et tu clique sur le bouton code au dessus de la zone de saisi du texte
-&gt;tu as la possibilité d’éditer (modifier) ton premier post
merci


Comment faire pour que ce scripte creer les meme groupes créer dans l'OU Bruxelles dans les autres OU (Namur et Liège)?

chaque nom de groupe est unique dans l'AD
tu ne peut donc pas avoir deux groupe \&quot;Comptabilité, Logistique ou Direction\&quot; dans ton AD
il te faudra les différencié d'une façon ou d'une autre : \&quot;Comptabilité Bruxelles, Comptabilité Namur, Comptabilité Liège\&quot; par exemples
les OUs peuvent avoir les nom mais il faut qu'il soit dans des positions différentes de ton arborescence d'OU

Peut-on aussi ajouter qui permet d'affecter chaque users dans le groupe auquel i appartient en fonction de son OU?

la question n'est pas très lisible :blush:
mais pour répondre si tu veut enlevé la colonne groupe de ton fichier CSV, il te faudra bien trouvé le moyen de connaître la fonction de tes utilisateurs ! \&quot;Comptable, Logisticien ou Directeur\&quot; :whistle:
une solution serait de donné l'info par le nom de l'OU, ex. : \&quot;OU=Comptabilité,OU=Bruxelles,OU=Region,DC=domaine,DC=com\&quot;
tu aurai donc tes utilisateurs classé dans des OU différente en fonction de leur service : \&quot;Comptabilité, Logistique ou Direction\&quot;
il te suffit alors de retrouvé le nom du groupe auquel un utilisateur doit être affecté en lisant le nom de l'OU
[code:1]
$ou = \&quot;OU=Comptabilité,OU=Bruxelles,OU=Region,DC=domaine,DC=com\&quot;

($ou -split \&quot;^OU=([\w- \(\)\!\'\.]+)[, ]+[COD].=\&quot;«»)[1] # donne Comptabilité
($ou -split \&quot;^OU=[\w- \(\)\!\'\.]+[, ]+OU=([\w- \(\)\!\'\.]+)[, ]+[COD].=\&quot;«»)[1] # donne Bruxelles

$gr = ($ou -split \&quot;^OU=([\w- \(\)\!\'\.]+)[, ]+[COD].=\&quot;«»)[1] + \&quot; \&quot; + ($ou -split \&quot;^OU=[\w- \(\)\!\'\.]+[, ]+OU=([\w- \(\)\!\'\.]+)[, ]+[COD].=\&quot;«»)[1]
$gr # donne Comptabilité Bruxelles
[/code:1]
mais c'est bien compliqué ton AD pour si peu de choses, et peut porté à confusion sur les permissions pour un administrateur inexpérimenté :whistle:
surtout que bien souvent dans un même service on n'a des utilisateurs avec des permissions différentes du coup tous ton travail d'organisation est a refaire :(
mais tous ça depend de la taille de ton organisation/entreprise bien sûr !! ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 7 mois #22160 par Toto JDD
Merci beaucoup 6ratgus pour l’observation et l’entraide.
Le code que tu viens de m’envoyer dépasse ma compréhension (niveau), du cout l’interprété devient difficile pour moi. Sinon, je viens d’apprendre qu’il n’est pas possible d’avoir deux groupes de même nom dans un AD. Je comprends que t’as vraiment le souci de m’apprendre. Du coup, je reformule ma préoccupation par deux questions (Pourrais-tu me répondre par en script, à partir de mon fichier .csv qui répondrait à ces deux préoccupation):

1. Création dynamique des groupes basés sur les rôles à partir des Groupe du fichier CSV sous la forme suivante. Exemple pour comptabilité :
• Groupe « comptabilité » sous l’OU Region
• Groupe « comptabilitéBruxelles » sous l’OU Region/Bruxelles

2. Attribution des comptes aux bons groupes. L’utilisateur est membre, par exemple, de «comptabilitéBruxelles» et «comptabilitéBruxelles» est membre de « Bruxelles»

Merci
Toto JDD

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 7 mois #22161 par Philippe

Pourrais-tu me répondre par en script, à partir de mon fichier .csv qui répondrait à ces deux préoccupation

ok mais d'abord peut tu stp m'aider en mettant les balises code sur les parties scripts de tes message, stp.
Ca me facilite le travail de lecture de ton code !
pour ça tu surligne ton code et tu clique sur le bouton code au dessus de la zone de saisi du texte
-&gt;tu as la possibilité d’éditer (modifier) tes premiers post
merci B)

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.054 secondes
Propulsé par Kunena