Meilleur auteur de réponses
Problème script Powershell

Question
-
Bonjour à tous, je suis entrain de créer un script qui me permettra d'importer une liste d'utilisateur depuis un fichier excel renomé en csv. Je rencontre une erreur que je n'arrive pas à régler... "
You cannot call a method on a null-valued expression.
At C:\Users\Administrator\Desktop\pscript.ps1:10 char:5
+ $flfname = $fname.substring(0, 1)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
" besoin d'aide s'il vous plait. ci joint mon script.
Import-Module ActiveDirectory $users = Import-Csv -Delimiter ";" -Path "C:\adduser\organization.csv" foreach ($user in $users){ $name = $user.Firstname + " " + $user.Lastname $fname = $user.Firstname $lname = $user.Lastname $flfname = $fname.substring(0, 1) $login = $flfname + $user.Lastname $Ucountry = $user.country $Ucity = $user.location if ($Ucountry -eq "France") { switch ($user.OU){ "Direction Department" {$ou = "OU=Users,OU=Direction Department, OU=Direction,DC=shiptruck,DC=lan"} "Financial Department" {$ou = "OU=Users,OU=Financial Department, OU=Direction,DC=shiptruck,DC=lan"} "Marketing Department" {$ou = "OU=Users,OU=Marketing Department, OU=Direction,DC=shiptruck,DC=lan"} "Commercial Departmentl" {$ou = "OU=Users,OU=Commercial Department, OU=Direction,DC=shiptruck,DC=lan"} "Management" {$ou = "OU=Users,OU=Management,OU=Paris,OU=Agencies,DC=shiptruck,DC=lan"} "Plateform Staff" {$ou = "OU=Users,OU=Plateform Staff,OU=Paris,OU=Agencies,DC=shiptruck,DC=lan"} } try { New-ADUser -Name $name -SamAccountName $login -UserPrincipalName $login -DisplayName $name -GivenName $fname -Surname $lname -ChangePasswordAtLogon $true -City $Ucity -Country $Ucountry echo "Utilisateur ajouté : $name" } catch{ echo "utilisateur non ajouté : $name" } } break }
- Déplacé Boris Ivanov lundi 18 mai 2015 12:38
Réponses
-
Problème résolu! Merci
- Marqué comme réponse TheFlawlessOne mercredi 20 mai 2015 20:21
Toutes les réponses
-
-
>>Que dois je faire?
Le cmdlet Import-csv ne fait aucun contrôle sur le contenu, tu peux t'assurer d'avoir les bonnes valeurs en utilisant une ou + assertions. Le code est à insérer en début de boucle Foreach.
Tu peux aussi créer des règles de validation.
Beatus, qui prodest, quibus potest.
-
-
>>je suis pas sûr d'avoir compris ce que vous dites...
Tu supposes que les colonnes de ton fichier sont renseignées. On ne peut pas appeler une méthode sur un variable contenant $null.
Soit tu le vérifies de visu, soit tu automatises cette vérification en ajoutant du code.
Vérifie déjà que la variable $Users n'est pas $null et qu'elle contient bien un tableau d'objet.
Beatus, qui prodest, quibus potest.
-
Problème résolu! Merci
- Marqué comme réponse TheFlawlessOne mercredi 20 mai 2015 20:21