Question
Chemin d'une UO à l'intérieur d'une UO
- Couvez
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 9 ans 5 mois #22471
par Couvez
Chemin d'une UO à l'intérieur d'une UO a été créé 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
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
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 5 mois #22472
par Philippe
Réponse de Philippe sur le sujet Re:Chemin d'une UO à l'intérieur d'une UO
salut Cocoom
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
d'après ce que je vois tu a déjà le paramètre \"-Path $ou\" dans new-aduser pour faire le travail.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.
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.
- Couvez
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 9 ans 5 mois #22476
par Couvez
Réponse de Couvez sur le sujet Re:Chemin d'une UO à l'intérieur d'une UO
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 ^^
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.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 5 mois #22477
par Philippe
Réponse de Philippe sur le sujet Re:Chemin d'une UO à l'intérieur d'une UO
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 = \"OU=ou_du_pays_par_exemple,OU=ou_de_l'entreprise,DC=domaine,DC=lan\"
[/code:1]
puis tu crée la OU path dans la variable
[code:1]$ville = $user.ville
$OUDN = \"OU=$OUName,OU=$ville,$baseou\"[/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 \"utilisateurs\" et donc tu pourrais changé cette ligne ainsi :
[code:1]$OUDN = \"OU=Utilisateurs,OU=$ville,$baseou\"[/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
mais en gros :
[code:1]# OU de base contenant les OU villes ou seront créé les utilisateurs
$baseou = \"OU=ou_du_pays_par_exemple,OU=ou_de_l'entreprise,DC=domaine,DC=lan\"
[/code:1]
puis tu crée la OU path dans la variable
[code:1]$ville = $user.ville
$OUDN = \"OU=$OUName,OU=$ville,$baseou\"[/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 \"utilisateurs\" et donc tu pourrais changé cette ligne ainsi :
[code:1]$OUDN = \"OU=Utilisateurs,OU=$ville,$baseou\"[/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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Chemin d'une UO à l'intérieur d'une UO