Слишком все Эксперты Powershell : Мне нужна помощь, чтобы выяснить, почему это работает неправильно. Что я имею в виду неправильно, учетные записи в пароле CSV обновляются случайным паролем, и пользователям отправляется электронное письмо, но я не понимаю, почему они получают один и тот же пароль, и каждая учетная запись в AD адресована. См. Вывод электронной почты:
Электронная почта первого пользователя:
Hello Guest DefaultAccount user1, user2, user3, user4 test John Doe,
Your AD Account user1, password has been updated to e,wQlsGfBE;J'4
Повторное использование почты
Hello Guest DefaultAccount user1, user2, user3, user4 test John Doe,
Your AD Account jdoe, password has been updated to e,wQlsGfBE;J'4
что я пытаюсь для выполнения sh:
- Элемент списка
- Импорт одного столбца cvs только с "samAccountName"
- сброс пароля для учетные записи, перечисленные в csv со случайным сгенерированным длинным паролем из 20 символов
- Отправьте на адрес электронной почты, связанный с учетной записью AD, новый пароль. (Я делаю это, потому что их адрес электронной почты отличается от их учетной записи AD), чтобы они могли получать свою электронную почту.
Import-Module ActiveDirectory
# Import AD user objects and store in users variables
$users = Get-ADUser -Filter * -Properties Name, EmailAddress,SamAccountName | Select SamAccountName,Name,EmailAddress
$Name = $users.Name
$SamAccountName = $users.SamAccountName
$EmailAddress = $users.EmailAddress
#Date
$date = (Get-Date -Format F)
#Generate a random password and store in newpwd
$newpwd = -join (33..126|%{[char]$_}|Get-Random -Count 20)
$newPassword = ConvertTo-SecureString -AsPlainText "$newpwd" -Force
# Import users from CSV
Import-Csv "C:\Userlist.csv" | ForEach-Object {
$samAccountName= $_."samAccountName"
#Proceed with password reset
Set-ADAccountPassword -Identity $samAccountName -NewPassword $newPassword -Reset
Set-AdUser -Identity $samAccountName -ChangePasswordAtLogon $true
#Server configuration
$smtpServer =""
$SmtpPort = ""
# sending option
$from = "it-operation@example.com"
$to = $EmailAddress
$subject ="AD Password updated - " + $date
$priority = "Normal"
$from = ""
$body = @"
Hello $name, <br>
Your AD Account $samAccountName, password has been updated to $newpwd
"@
try {
# Send the report email
Send-MailMessage -To $to -Subject $subject -BodyAsHtml -body $body -SmtpServer $smtpServer -Port $SmtpPort -From $From -Priority $priority
}
catch{
write-warning "error in sending. $_"
} # End User Processing
}
Пароль учетной записи обновляется, но просто не может отправить emai