Script Powershell qui ne fait rien

Fermé
tito - Modifié le 30 juin 2017 à 16:21
zucrezel Messages postés 30 Date d'inscription mardi 7 février 2017 Statut Membre Dernière intervention 19 juillet 2017 - 10 juil. 2017 à 10:50
Bonjour à tous et à toutes
J'ai un petit soucis ou est ce vraiment un?
J'ai suivi un tuto sur le net pour l'importation d'un fichier csv sur powershell afin de créer le compte des personnes. Je ne vois aucun message d'erreur mais pourtant les comptent ne se créent pas. Avez vous une idéé d'où ça peux venir svp?

Merci d'avance à celui ou celle qui pourra m'éclairer... :s

Import-Module ActiveDirectory
{
$Users = Import-Csv -Delimiter ";" -Path "C:\Users\adm-tito\Desktop\test.csv"
foreach($temp in $Users) { }

$upn = $temp.SamAccountName + "Nougatine.global"
$name = $temp.firstname + " " + $temp.Lastname
$fName = $temp.Firstname
$SAM = $temp.SAMAccountName
$password = $temp.Password
$description = $temp.Description
$ou = $temp.OU

try{

New-ADUser -Name $name -SamAccountName $SAM -UserPrincipalName $upn -DisplayName $name -GivenName $fName -SurName $temp.Lastname -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PasswordNeverExpires $true -Description $description -Path $ou

echo "Utilisateur ajouté : $name"

} catch {
echo "Utilisateur non ajouté : $name"
}

}

A voir également:

8 réponses

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
30 juin 2017 à 16:34
Bonjour,

Déjà :
foreach($temp in $Users) { } 

... Tu a mal placé ton accolade de fin ...
0
Bonjour Jordan, Merci de prendre le temps te pencher sur mon soucis, ben quand je l'enlève pour le mettre à la fin il me fait voir qu'il me manque une accolade à l'endroit où je l'enlève... "Il me sors Corps de l’instruction manquant dans la boucle foreach".

Donc je ne pense pas que ce soit ça? Tu vois encore autre chose
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
Modifié le 30 juin 2017 à 19:02
Tu as également une accolade ouvrante en trop au début de ton script je pense....

essaye ça :
Import-Module ActiveDirectory
$Users = Import-Csv -Delimiter ";" -Path "C:\Users\adm-tito\Desktop\test.csv"

foreach($temp in $Users) { 
  $upn = $temp.SamAccountName + "Nougatine.global"
  $name = $temp.firstname + " " + $temp.Lastname
  $fName = $temp.Firstname
  $SAM = $temp.SAMAccountName
  $password = $temp.Password 
  $description = $temp.Description
  $ou = $temp.OU
  
  try{
     New-ADUser -Name $name -SamAccountName $SAM -UserPrincipalName $upn -DisplayName $name -GivenName $fName -SurName $temp.Lastname -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PasswordNeverExpires $true -Description $description -Path $ou

    Write-Host "Utilisateur ajouté : $name"
  } catch {
     Write-Host"Utilisateur non ajouté : $name"
  }

} 


NB : En PowerShell .. on utilise Write-Host et non echo.
0
D'accord merci j'essaye ça quand je rentre chez moi et je te tiens au courant!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut, j'ai essayé ce que tu m'as dit et là j'ai la ligne rouge suivante :
"Le terme << "Write-Host" "Utilisateur non ajouté : $name" >> n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès de ligne : 13 Caractère : 48

+ Write Host "Utilisateur non ajouté : $name" <<<<
+ Categoryinfo :ObjectNotFoud: <Write-Host"Util... ajouté : $name"String> [], Command NotFoundException
+FullyQualifiedErrorld : CommandNotFoundException

Une idée?
0
Bonjour Jordan, tu m'as oublié?
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
7 juil. 2017 à 14:59
Tu es en powershell 2 ou 3 ou autre ??
0
tito > jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024
8 juil. 2017 à 20:40
Name Value
---- -----
PSVersion 5.1.14393.1358
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.1358
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
0
zucrezel Messages postés 30 Date d'inscription mardi 7 février 2017 Statut Membre Dernière intervention 19 juillet 2017 4
9 juil. 2017 à 12:03
Bonjour,

Vu le message d'erreur "Command NotFoundException", tu as oublié l'espace à la ligne 21 entre le nom de la CmdLet (Write-Host) et son paramètre (tu l'as bien écrit la ligne 19).
Sans le séparateur espace, toute la ligne 21 est considérée comme une CmdLet qui n'est pas reconnue par PowerShell.

ligne 21 avant correction :
 Write-Host"Utilisateur non ajouté : $name"


après correction :
 Write-Host "Utilisateur non ajouté : $name"
0
Bonjour zucrezel ,
Je te remercie de te pencher sur mon cas. J'ai juste fais un copier coller de ce qui m'a été donné. Merci pour la correction :) Ca marche disons en partie car je n'ai plus l'erreur mais mes users ne sont toujours pas crées et je ne vois pas pourquoi ça me fait ça. Là le script s'exécute mais j'ai à la fin 12 "Utilisateur non ajouté" soit le nombre de mes users que j'essaye d'ajouter. Saurais tu voir ce qui cloche stp?
Vraiment merci encore pour ton aide.
0
zucrezel Messages postés 30 Date d'inscription mardi 7 février 2017 Statut Membre Dernière intervention 19 juillet 2017 4
10 juil. 2017 à 10:50
Bonjour,
Dans le catch ajoute la remontée des messages d'erreur (tu as peut être un problème de droits d'écriture dans l'ad) :
$errmsg=$_.Exception.message
$errinfo=$_.Exception.itemname
write-host $errinfo $errmsg
0