none
import-csv Impossible de traiter l'argument, car la valeur de l'argument « name » n'est pas valide RRS feed

  • 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

    jeudi 2 mai 2013 23:57

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
    vendredi 3 mai 2013 08:32

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
    vendredi 3 mai 2013 08:32
  • 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

    vendredi 3 mai 2013 09:28