У меня есть автоматический скрипт, который импортирует пользователей из CSV-файла в Active Directory. Я хотел бы отправить электронное письмо для каждого пользователя, созданного с их именем пользователя и паролем, новому администратору для входа в систему. В настоящее время он отправляет электронное письмо для каждого пользователя, но не вставляет имя пользователя и пароль.Как вставить переменную в HTML в powershell?
$newadstaff = Import-CSV "newad-staff.csv"
$mailpwd = ConvertTo-SecureString 'helpdeskpassword' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential '[email protected]',$mailpwd
$googusr = $_.'HomePage'
$googpwd = $_.'AccountPassword'
$Body = @"
<style>
.colorchange {color:#4F81BD;}
ind {text-indent:50px;}
</style>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<div style="background-color:#3059D6; color:white; padding:20px;">
<p style="font-family:Tahoma, Geneva, sans-serif; font-size:40pt"; align=center><b>NEW STAFF USER ACCOUNT</b></p>
</div>
<p style="font-family:Tahoma, Geneva, sans-serif; font-size:20pt">A new Google account has been created for: </p>
<p style="font-family:Tahoma, Geneva, sans-serif; font-size:12pt">Please navigate to <a href="https://google.com/accounts">Google Account Login</a> and login with the below credentials. You will be prompted to change your password after logging in:</p>
<p style="font-family:Tahoma, Geneva, sans-serif; font-size:12pt"><b>Username: $googusr </b>
<p style="font-family:Tahoma, Geneva, sans-serif; font-size:12pt"><b>Password: $googpwd </b>
</body>
</html>
"@
$param = @{
SmtpServer = 'smtp.gmail.com'
Port = 587
UseSsl = $true
Credential = $cred
From = '[email protected]'
To = '[email protected]'
Subject = 'New User Account'
Body = $body
}
$When = ((Get-Date).Addhours(-1)).Date
Get-ADUser -Filter {whenCreated -ge $When} -Properties whenCreated | export- csv "newad-staff.csv"
Foreach ($user in $newadstaff)
{
Send-MailMessage @param -BodyAsHtml
}
Ваши переменные-пользователи и переменные имеют такое значение, как вы определяете его по выходному конвейеру. не уверен, что это ваш весь скрипт, но я, вероятно, буду «писать-хост» для каждой переменной пользователя и пароля, и если они появятся, бросьте «write-host» в конце вашей переменной body, чтобы убедиться, что текстовый поток создает его включает значения, которые вы ожидаете. В CSV вы импортируете одну учетную запись? если это так, возможно, ваш пользователь и пароль должны иметь формат '$ newadstaff.AccountPassword'. – ssaviers
csv - это список всех пользователей, добавленных в AD за последний час. Я новичок в написании сценариев/программировании.Я все еще изучаю powershell, поэтому, если бы вы могли привести примеры и слова великого Майкла Скотта «Объясните это мне, как будто мне 5 лет». :) – Mike
создал для вас вариант ответа с кратким описанием. Удачи – ssaviers