Question Chemin d'une UO à l'intérieur d'une UO

Plus d'informations
il y a 9 ans 5 mois #22471 par Couvez
Bonjour, alors voilà j'ai recuperé ce script qui créé des utilisateurs dans l'AD en important un fichier .csv

Script powershell:

Import-Module ActiveDirectory

$ImportCSV = import-csv -path \"C:\scriptad\users.csv\" -delimiter \";\"

Foreach($user IN $ImportCSV) {
$pass = $user.Password
$nom = $user.Surname
$prenom = $user.GivenName
$displayname = $user.Surname +\" \"+ $user.GivenName
$login = $user.SamAccountName
$Userlogon = $user.Userlogon
$OUName = $user.OU
$Group = $user.Groupe
$logscript = $user.logonscript
$OUSearch = Get-ADOrganizationalUnit -Filter {Name -like $OUName}
$OUDN = $OUSearch.distinguishedName
Write-Host -ForegroundColor Green \"Création de l'utilisateur en cour: $displayname ($login)\"
New-ADUser -Name $displayname -Surname $nom -GivenName $prenom -DisplayName $displayname -SamAccountName $login -AccountPassword (convertto-securestring $pass -asplaintext -force) -PasswordNeverExpires $true -PasswordNotRequired $true -UserPrincipalName $Userlogon@test.local -Path $OUDN -enabled $true -ScriptPath $logscript
$UserDNsearch = Get-ADUser -Filter {SamAccountName -like $login}
$GroupDNsearch = Get-ADGroup -Filter {Name -like $Group}
$GroupDN = $GroupDNsearch.distinguishedName
$GroupDest = [ADSI]\"LDAP://$GroupDN\"
$GroupDestDN = \"LDAP://$UserDNsearch\"
$GroupAdd = $GroupDest.Add($GroupDestDN)

Sleep 15
}


Mon Fichier .csv:

Password;Surname;GivenName;SamAccountName;UserLogon;OU;Groupe;logonscript
P@ss0word;DUPONT;Tom;tdupont;tdupont;Utilisateurs;Direction;logon.bat

Jusuqe là, tout va bien !
Mais le petit problème est que dans mon AD, j'ai plusieurs UO (Lyon, Paris, Arras) et à l'intérieur de ces UO on retrouve les UO (Groupes et Utilisateurs)

Donc voilà mon problème dans mon AD j'ai 3 UO qui possèdent le même nom cad \"Utilisateurs\" et quand j'execute mon script en lui demandant de creer l'utilisateur dans l'UO \"Utilisateurs\" il plante car il ne sait pas dans laquelle des 3 le creer.

Pourriez-vous m'aider à indiquer un chemin plus précis pour la création des utilisateurs
Merci d'avance :laugh:

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

Plus d'informations
il y a 9 ans 5 mois #22472 par Philippe
salut Cocoom

quand j'execute mon script en lui demandant de creer l'utilisateur dans l'UO \"Utilisateurs\" il plante car il ne sait pas dans laquelle des 3 le creer.

d'après ce que je vois tu a déjà le paramètre \"-Path $ou\" dans new-aduser pour faire le travail.
il faut simplement que dans les lignes suivante tu indique l'OU de base pour ajout a ta variable $OUName :
[code:1] $OUSearch = Get-ADOrganizationalUnit -Filter {Name -like $OUName}
$OUDN = $OUSearch.distinguishedName
[/code:1]
le plus sûr étant que l'OU de base soit dans le fichier CSV
mais tu peut avoir une OU de base standard fixé dans le script et ne mettre dans le CSV que la ville. Dans tous les cas il te faut cette info car PowerShell ne peut deviné dans quelle ville va un utilisateur :

j'ai déjà fait un script sur ce sujet ici


profite aussi de l'occasion pour rajeunir ton script en changent l'utilisation de l'adsi un Add-ADGroupMember

soit remplacer :
[code:1]$UserDNsearch = Get-ADUser -Filter {SamAccountName -like $login}
$GroupDNsearch = Get-ADGroup -Filter {Name -like $Group}
$GroupDN = $GroupDNsearch.distinguishedName
$GroupDest = [ADSI]\"LDAP://$GroupDN\"
$GroupDestDN = \"LDAP://$UserDNsearch\"
$GroupAdd = $GroupDest.Add($GroupDestDN)
[/code:1]
par [code:1]Add-ADGroupMember $Group $login[/code:1]<br><br>Message édité par: 6ratgus, à: 10/10/16 12:39

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

Plus d'informations
il y a 9 ans 5 mois #22476 par Couvez
Merci 6ratgus pour ta réponse rapide.

Tu as très bien saisie ma demande.

Je suis d'accord avec toi pour que l'UO de base soit fixée dans le .csv

Maintenant mon problème est juste que je n'arrive pas à retranscrire ce qui doit être contenu dans ma variable OUName afin que le get-adorga.. cible directement mon OU utilisateurs dans la ville demandée

Peux donc tu m'ecrire en powershell ce que je dois modifier?

Ps:merci pour le rajeunissement de mon script ^^

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

Plus d'informations
il y a 9 ans 5 mois #22477 par Philippe
comme je te les déjà dis, j'ai déjà fais le travail dans le script cité

mais en gros :
[code:1]# OU de base contenant les OU villes ou seront créé les utilisateurs
$baseou = \&quot;OU=ou_du_pays_par_exemple,OU=ou_de_l'entreprise,DC=domaine,DC=lan\&quot;
[/code:1]
puis tu crée la OU path dans la variable
[code:1]$ville = $user.ville
$OUDN = \&quot;OU=$OUName,OU=$ville,$baseou\&quot;[/code:1]
et donc tu vire ces deux lignes :
[code:1]$OUSearch = Get-ADOrganizationalUnit -Filter {Name -like $OUName}

$OUDN = $OUSearch.distinguishedName[/code:1]

n'oublie pas de créé une colonne ville dans ton CSV

au passage la colonne OU avec utilisateurs ne sert pas a grand chose puisque tu va toujours créé tes utilisateurs dans l'OU \&quot;utilisateurs\&quot; et donc tu pourrais changé cette ligne ainsi :
[code:1]$OUDN = \&quot;OU=Utilisateurs,OU=$ville,$baseou\&quot;[/code:1]

ou alors ton fichiers CSV ne sert pas qu'a la création d'utilisateurs !!!
.<br><br>Message édité par: 6ratgus, à: 11/10/16 17:06

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

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