vincentlez | Bonjour à tous,
J'ai un petit soucis avec powershell. J'essaye d'importer un CSV dans mon serveur (c'est un labo) mais j'ai un soucis avec une variable.
Dans mon script j'aimerais pouvoir préciser dans quelle OU seront les utilisateurs, selon leur service.
J'ai donc créer la variable "$ou_users" que j'ai mis en rouge dans le code. Mais j'ai un soucis. Lorsque je tente de lancer "new-aduser -name $fullname -Path $ou_users" ça ne passe pas. J'ai le message suivant :
new-aduser : La syntaxe du nom de l’objet est incorrecte
Au caractère Ligne:1 : 1
+ new-aduser -name $fullname -Path $ou_users
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (CN=Carter WARRE...C=vcorp,DC=net":String) [New-ADUser], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8335,Microsoft.ActiveDirectory.Management.Commands.NewADUser
Mais lorsque j’exécute tout seul la variable $ou_users ça me donne "OU=users,OU=administratifs,OU=vcorp,DC=vcorp,DC=net" avec la bonne syntaxe et le nom que je veux.
Afin d'en être sûr j'ai donc exécuté $ou_users, copié ce que ça m'a donné puis directement collé dans ma commande.
Ce qui donne --> new-aduser -name $fullname -Path "OU=users,OU=administratifs,OU=vcorp,DC=vcorp,DC=net"
De cette manière cela fonctionne. La commande passe et mon utilisateur est créé dans la bonne OU.
Pouvez-vous me dire d'où ça pourrait venir ? Je n'arrive pas à trouver une solution, ni même pas comprendre ce qu'il se passe...
En espérant avoir été clair,
Merci d'avance pour vos réponses. Vincent
PS : Je vous met le script complet au cas où.
Code :
- #variables
- $ou_distinguishedname = "OU=vcorp,DC=vcorp,DC=net"
- $company = "vcorp".toupper()
- #importe de fichier csv créé précédemment
- $csvusers = import-csv "C:\Users\administrateur.VCORP\Documents\Powershell import utilisateur\users.csv" -delimiter ";"
- # boucle creation des users
- foreach ($line in $csvusers) #création de la boucle
- {
- #variables
- $prenom = $line.prenom
- $prenom = (get-culture).textinfo.totitlecase($prenom)
- $nom = $line.nom
- $nom = $nom.toupper()
- $fullname = ($prenom+" "+$nom)
- $matricule = $line.matricule
- $mail = ($prenom.Substring(0,1)+'.'+$nom+"@vcorp.net" ).tolower().replace(" ","" )
- $service = $line.service
- $service_user = (get-culture).textinfo.totitlecase($service)
- $expiration = $null
- $expiration = $line.expiration
- $initiales = $prenom.substring(0,1)+$nom.substring(0,1)
- $login = ($prenom+"."+$nom).replace(" ","" )
- $ou_service = "OU="+$service+","+$ou_distinguishedname
- $ou_users = '"'+"OU=users"+','+$ou_service+'"'.ToString()
- $affichage = $prenom+" "+$nom
- $password = $prenom.replace(" ","" )+"*"+$matricule
- $password_secure = convertto-securestring -string $password -asplaintext -force
-
-
- #creation des users
- new-aduser -name $fullname -Path $ou_users -GivenName $prenom -Surname $nom -DisplayName $full -SamAccountName $login -AccountPassword $password_secure
-
- #expiration de compte
- if ($expiration -notlike $null)
- {
- echo "Mon compte va expirer"
- $expiration_description = $expiration.tostring()
- set-aduser $login -accountexpirationdate $expiration -Description $expiration_description
- }
|
Message édité par vincentlez le 24-10-2019 à 18:47:15
|