Я добавляю новый элемент PowerShell в свое создание пользователя, который должен отправить своему руководителю электронное письмо с предупреждением о том, что он был создан. Однако по какой-то причине он отправляет учетные данные следующему супервизору в списке, а не супервизору в этой строке, и первый указанный супервизор получает заголовки в качестве информации. CSV построен так:
1.Lastn | Firstn | Программа | Пароль. | Руководитель
2. Утка | Даффи | ........ 998 | ChangeMe | Bob.Dole
3.Зайчик | Багги | ......... 878 | ChangeMe | Элмер Фадд
Сценарий такой:
$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
}
Однако супервизору «Bob.Dole» по электронной почте отправляются учетные данные «Buggs.Bunny», а супервизору Элмеру.Фадду отправляется электронное письмо «Firstname.Lastname», что и составляет основу $ Sam. Таким образом, учетные данные отправляются супервизору на одну строку ниже, и последнему супервизору отправляется электронное письмо «имя.фамилия», а не лицо. Кроме того, я получаю недоставленные электронные письма, в которых говорится, что учетная запись электронной почты Supervisor@contoso.org недействительна, поэтому, похоже, что-то неверно истолковывает, хотя он выполнил команду на отправку $ supervisor после того, как это сделал. Если я вставляю пустую ячейку под заголовок «Супервизор», так что столбец супервизора сдвигается вниз на единицу, он выдает мне ошибку о том, что должен быть указан получатель, НО затем отправит учетные данные ПРАВИЛЬНОМ супервизору, как только переключены на пониженную передачу.
Проблема в том, что вы назначаете $SAM
после того, как вы обратитесь к нему в своем задании $body
.
$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"
#moved before $body= .... $SAM ...
$SAM = $UserFirstname + "." + $UserLastname
$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"
Send-MailMessage -to $Supervisor@Contoso.org -Subject $subject -body $body -SmtpServer $smtp -from sarah.sanderson@Contoso.org
}