J'ajoute un nouvel élément powershell à ma création d'utilisateur, qui consiste à envoyer un e-mail à leur superviseur pour l'avertir qu'ils ont été créés. Cependant, pour une raison quelconque, il envoie les informations d'identification au superviseur suivant dans la liste, au lieu du superviseur de cette ligne, et le premier superviseur listé reçoit des en-têtes comme informations. Le CSV est construit comme suit :
1.Lastn | Firstn | Programme | Mot de passe. | Superviseur
2.Duck | Daffy | ........ 998 | ChangeMe | Bob.Dole
3.Bunny| Buggs|.........878| ChangeMe | Elmer.Fudd
Le script est :
$Users = Import-Csv "C:\PSScripts\Create\users.csv" -header("lastname","firstname","program","password","supervisor")
foreach ($User in $Users)
{
$OU = "OU=users,DC=Contoso,DC=local"
$UserFirstname = $User.Firstname
$UserLastname = $User.LastName
$Supervisor = $User.Supervisor
$subject = "New Account Creation Completed"
$body = "Good Morning! This e-mail is to alert you that your new staff person $SAM has been granted Contoso.org e-mail access. To log in to outlook web application, their username is $SAM and their temporary password is ChangeMe . They will be prompted to change it upon successful login."
$smtp = "10.10.1.79"
$SAM = $UserFirstname + "." + $UserLastname
Send-MailMessage -to $Supervisor@Contoso.org -Subject $subject -body $body -SmtpServer $smtp -from sarah.sanderson@Contoso.org
}
Cependant, le superviseur 'Bob.Dole' reçoit des informations d'identification 'Buggs.Bunny', et le superviseur Elmer.Fudd reçoit des informations d'identification 'Firstname.Lastname', ce qui correspond à la façon dont le $Sam est construit. Ainsi, les informations d'identification sont envoyées au superviseur situé en bas d'une rangée, et le dernier superviseur est envoyé par courrier électronique avec 'prénom.nom' plutôt qu'avec une personne. De plus, je reçois des e-mails non distribuables disant que le compte e-mail Supervisor@contoso.org n'est pas valide, il semble donc que le système interprète mal quelque chose, bien qu'il ait exécuté la commande d'envoi au $superviseur après l'avoir fait. Si j'insère une cellule vide, sous l'en-tête 'Supervisor', de sorte que la colonne des superviseurs soit décalée d'une unité vers le bas, le programme m'envoie un message d'erreur indiquant qu'un destinataire doit être spécifié, mais il envoie ensuite les informations d'identification au bon superviseur, une fois qu'elles sont décalées vers le bas.
0 votes
En lieu et place de l'import-CSV.... Commentez simplement la première ligne et essayez d'assigner $Users avec le nouveau code. Retournez ensuite la sortie sur la console et faites-la correspondre à votre csv. Les données devraient être correctes, mais recherchez les espaces blancs dans la propriété du superviseur.
0 votes
La première chose à noter est que vous déclarez les en-têtes de votre CSV, mais qu'il contient également des en-têtes - il interprétera donc probablement les en-têtes comme des données. Cela ne devrait pas causer le problème que vous rencontrez, mais cela ne peut pas vous aider.
0 votes
Ainsi, au lieu de
Import-Csv "C:\PSScripts\Create\users.csv
Ce seraitGet-Content -Path "C:\psscripts\create\users.csv" | ConvertFrom-CSV
?0 votes
Oui, c'est correct.