Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 传递变量以发送邮件消息_Powershell - Fatal编程技术网

Powershell 传递变量以发送邮件消息

Powershell 传递变量以发送邮件消息,powershell,Powershell,我正在尝试创建一个PowerShell脚本,该脚本将在我的Active Directory中搜索密码将在14天后过期的用户,并通过电子邮件向用户发送提醒消息。在大多数情况下,我的脚本按预期工作,但我没有得到电子邮件的正确输出 以下是脚本: Import-Module ActiveDirectory $below = (Get-Date).AddDays(-77) $above = (Get-Date).AddDays(-76) $Persons = Get-ADUser -Filter {Pas

我正在尝试创建一个PowerShell脚本,该脚本将在我的Active Directory中搜索密码将在14天后过期的用户,并通过电子邮件向用户发送提醒消息。在大多数情况下,我的脚本按预期工作,但我没有得到电子邮件的正确输出

以下是脚本:

Import-Module ActiveDirectory
$below = (Get-Date).AddDays(-77)
$above = (Get-Date).AddDays(-76)
$Persons = Get-ADUser -Filter {PasswordNeverExpires -eq $False -AND (PasswordLastSet -lt $above -AND PasswordLastSet -gt $below) -AND (LastLogonDate -like "*") -AND (MAil -like "*")}

foreach ($Person IN $Persons) {
$body = "Your Windows password will expire in 14 days. Please consider changing your password. - $User.Name - $User.PasswordLastSet"
Send-MailMessage -To $User.Mail -Subject "Alert! Password Expiring Soon!" -From 'Do_Not_Reply@domain.com' -Body $body -SmtpServer smtp.server.com
}
这就是我从它发送的邮件中得到的信息

您的Windows密码将在14天后过期。请考虑更改密码。名称-.PasswordLastSet

如何将上次设置的用户名和密码数据传递给正文?

您需要使用访问字符串中
$User
的属性:

"... - $($User.Name) - $($User.PasswordLastSet)"

否则,PowerShell将只将
$User
解析为变量,而
.Name
.PasswordLastSet
部分将被视为普通文本。

iCodez(正确)答案的替代方法是使用:

$body = "...your password. - {0} - {1}" -f $User.Name,$User.PasswordLastSet