Question
New-ADUser donne des erreurs étranges
- Cyrille CHAGNON
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
Je cherche à développer et à comprendre la mise à jour en \"bulk\" pour un Active Directory.
Voici mon code (récupéré sur le net, trafiqué)
[code:1]Import-Module ActiveDirectory
# Import list of Users From CSV into $Userlist
$UserList=IMPORT-CSV c:\scripts\newUsers1.csv
# Step through Each Item in the List
foreach ($User in $UserList) {
# Build Username
$Username=$User.samAccountName
Write-Output \"====\"
Write-Output \"1 $Username\"
# Build Password from Firstname and Lastname
$Password=$User.Lastname
Write-Output \"2 $Password\"
# Build the Displayname, le prénom, le nom
$DisplayName=$User.Firstname+\" \"+$User.Lastname
Write-Output \"3 $DisplayName\"
$prenom=$User.Firstname
$nom=$User.Lastname
# Build and define Domain name
$Domain=\"@labo.cyrille.fr\"
Write-Output \"4 $Domain\"
# Build User Principal Name
$UPN=$Username+$Domain
Write-Output \"5 $UPN\"
# Build and define Home Directory path
$HDrive=\"\\uncpathtohomeshare\\"
Write-Output \"6 $HDrive\"
# Build and define which Organizational Unit to create User inside
$OU=$User.OU
Write-Output \"7 $OU\"
Write-Output \"====\"
##########################################
#New-ADUser -Name $Username –GivenName \"$User.Firstname\" –Surname \"$User.Lastname\" –DisplayName $DisplayName –SamAccountName $Username –UserPrincipalName $UPN -HomeDrive \"H:\" -HomeDirectory $HDrive -Path $OU
New-ADUser -Name $Username –GivenName $prenom
# Set Password
#Set-ADAccountPassword -Identity $Username -NewPassword (ConvertTo-SecureString -AsPlainText $Password -Force)
# Add User to Security Groups
#Add-ADPrincipalGroupMembership -Identity $Username -MemberOf GroupeCommercial
# Enable Account
#Enable-ADAccount -Identity $Username
}[/code:1]
Mon fichier csv contient 4 champs comme suit:
[code:1]samAccountName,FirstName,LastName,OU
dtouret,Dominique,Touret,\"OU=Commercial,dc=labo,dc=cyrille,dc=fr\"
ebelot,Elisabeth,Belot,\"OU=Commercial,dc=labo,dc=cyrille,dc=fr\"[/code:1]
La ligne, mise en italique, juste après les dièses, celle qui doit m'ajouter mes comptes avec une initialisation de certains comptes m'envoie l'erreur en image jointe:
La chaîne commençant par :
Au niveau de C:\scripts\importuser.ps1 : 46 Caractère : 105
+ New-ADUser -Name $Username -HomeDrive \"H:\" -HomeDirectory $HDrive -Path $OU â?\"DisplayName \"$DisplayName <<<< \"
n'a pas de terminateur : \".
Au niveau de C:\scripts\importuser.ps1 : 58 Caractère : 2
+ } <<<<
+ CategoryInfo : ParserError: (
# Set Passwo... $Username
}:String) [], ParseException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
Alors comme je ne comprenais pas, j'ai cherché à y aller étape par étape.
En gras, voici une des commandes que j'ai passé. Elle m'envoie le même, relatif a \"n'a pas de délimiteur\";
Si je passe la commande suivante:
New-ADUser -Name $Username -HomeDrive \"H:\" -HomeDirectory $HDrive -Path $OU
Ca passe, je crée mes 2 comptes.
Comme si tous les paramètres du type \"string\" ne passaient pas; Mais le fait de les mettre entre \" n'a rien changé !
Pouvez-vous m'expliquer pourquoi ?
Cordialement,
Cyrille
Message édité par: Cyrille999, à: 24/08/14 20:21<br><br>Message édité par: Cyrille999, à: 24/08/14 20:23
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Cyrille999 écrit:
A priori ta substitution est erronée :Pouvez-vous m'expliquer pourquoi ?
[code:1]
$User= 1|select Firstname
$User.Firstname=\"Test\"
\"$User.Firstname\"
\"$($User.Firstname)\"
$User.Firstname
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Cyrille CHAGNON
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
Bonjour Laurent,Salut,
Cyrille999 écrit:A priori ta substitution est erronée :Pouvez-vous m'expliquer pourquoi ?
[code:1]
$User= 1|select Firstname
$User.Firstname=\"Test\"
\"$User.Firstname\"
\"$($User.Firstname)\"
$User.Firstname
[/code:1]
Pas compris ce que tu tentais de m'expliquer !!!!
J'ai lancé ton exemple, le $User est \"Test\" au lieu d'être \"1\" mais je ne vois pas dans mon code où j'ai substitué une variable ?!????
Merci d'avance de ta future explication
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
C'est une manière de créer un PSobjet, Select-Object renvoi un nouvel objet à partir d'une liste de propriétés.J'ai lancé ton exemple, le $User est \"Test\" au lieu d'être \"1\"
Cyrille999 écrit:
Si j'ai bien compris, ici :mais je ne vois pas dans mon code où j'ai substitué une variable ?!????
[code:1]
New-ADUser -Name $Username –GivenName \"$User.Firstname\"
[/code:1]
Le parseur s'arrête au point, il interprète donc uniquement la variable $User et pas la propriété de ton objet $User.Firstname.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- New-ADUser donne des erreurs étranges