Meilleur auteur de réponses
import-csv Impossible de traiter l'argument, car la valeur de l'argument « name » n'est pas valide

Question
-
Bonjour,
J'ai un problème lorsque j’exécute un script powershell que j'ai réalisé.
J'obtiens le message d'erreur ci dessous
Et voici mon modeste code:
Add-PSSnapin Quest.ActiveRoles.ADManagement -ErrorAction SilentlyContinue Import-Module ActiveDirectory -ErrorAction SilentlyContinue # Connexion aux DC DC2003 Connect-QADService -Service dc2003.local.mycompany.fr Write-Host Write-Host # Fichier de provisionning des comptes $InputList="C:\scripting\ScriptsBox\AD\Provisionning.csv" $date=(get-date).ToString("yyyy-MM-dd HH:mm:ss") Write-Host $date Write-Host Write-Host Write-Host "####################################" Write-Host Step 1: Création des comptes AD Write-Host "####################################" Write-Host Write-Host # Boucle de création des comptes AD et de renseignement des champs ObjUser # Elle s'apuie sur un utilisateur de référence pour le provisionning des groupes dont l'utilisateur sera membre import-csv $InputList | Foreach { Write-Host "Utilisateur en cours :" $_.DisplayName Write-Host "Utilisateur de référence pour la copie :" $_.CopyUser # $TargetOu=(Get-QADUser -Identity $_.CopyUser).ParentContainerDN Write-Host Write-Host # New-QADuser -ParentContainer $TargetOu -name $_.DisplayName -sAMaccountName $_.SamId -DisplayName $_.DisplayName -FirstName $_.FirstName ` # -LastName $_.LastName -UserPrincipalName $_.Upn -Description $_.Matricule -userpassword $_.Password |Enable-QADUser Write-Host # Set-QADUser -Identity $_.Upn -userMustChangePassword $False -LogonScript $_.Batch -HomeDrive $_.DriveP -Company $_.Society -City $_.Ville ` # -StreetAddress $_.Adresse -Title $_.Title -AccountExpires $_.Expiration -Department $_.Departement -Manager $_.Manager Write-Host #$GoupsToAdd=(get-QADUser $_.CopyUser).Memberof |add-QADGroupMember -Member $_.Upn Write-Host Start-Sleep -s 5 } Write-Host Write-Host # Chargement des CMDlets Exchange Management Shell Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin Write-Host "###########################################" Write-Host Step 2: Activation des Attributs Exchange Write-Host "###########################################" Write-Host Write-Host # Boucle de transformation des comptes AD en Mail Enable User (Compte AD avec Attributs Exchange) import-csv $InputList | Foreach { Write-Host "Utilisateur en cours :" $_.DisplayName Write-Host # Enable-MailUser -Identity $_.Upn -ExternalEmailAddress ($_.Firstname +"."+ $_.LastName+"@local.mycompany.com")` # -PrimarySmtpAddress ($_.Firstname +"."+ $_.LastName+"@mycompany.fr") Write-Host Start-Sleep -s 5 }
Y a-til un expert powershell à bord?
Merci
Orwell
Réponses
-
Bonjour,
Avez-vous vérifié que le CSV était importé correctement ? (pb de délimiteur par exemple)
Quelques remarques :
Les 2 steps peuvent être fait dans la même boucle Foreach
Pourquoi ne pas faire directement un New-MailUser ?
Pour plus de lisibilité quand vous créez un compte, vous pouvez utiliser un tableau pour les attributs, par exemple :
$UserInfo = @{ Name = $_.DisplayName SAMaccountName = $_.SamId DisplayName = $_.DisplayName FirstName = $_.FirstName LastName = $_.LastName UserPrincipalName = $_.Upn Description = $_.Matricule } New-ADUser @UserInfo
Cdt,
- Marqué comme réponse G-Orwell mardi 7 mai 2013 16:12
Toutes les réponses
-
Bonjour,
Avez-vous vérifié que le CSV était importé correctement ? (pb de délimiteur par exemple)
Quelques remarques :
Les 2 steps peuvent être fait dans la même boucle Foreach
Pourquoi ne pas faire directement un New-MailUser ?
Pour plus de lisibilité quand vous créez un compte, vous pouvez utiliser un tableau pour les attributs, par exemple :
$UserInfo = @{ Name = $_.DisplayName SAMaccountName = $_.SamId DisplayName = $_.DisplayName FirstName = $_.FirstName LastName = $_.LastName UserPrincipalName = $_.Upn Description = $_.Matricule } New-ADUser @UserInfo
Cdt,
- Marqué comme réponse G-Orwell mardi 7 mai 2013 16:12
-
Bonjour Grégory,
Merci pour ta réponse.
Pour le CSV il utilise le format de séparateur (,) qui est celui par défaut de la cmdlet import-csv. Donc je ne comprends pas trop d'où peut venir l'erreur.
Je ne maitrise pas super bien powershell mais je pense avoir compris l'idée que tu me proposes et je vais tenter de la mettre en oeuvre.
En fait si je ne créé pas directement un New-mailuser c'est parce que les options de la cmdlet New-MailUser ne sont pas très riches et ne permettent pas de renseigner finement les attributs de comptes AD.
Maintenant c'est vrai que je pourrais créer directement un mail user et ensuite renseigner les infos de compte à l'aide d'un set-qaduser.Orwell