gpt4 book ai didi

powershell - 将变量传递给 Send-MailMessage

转载 作者:行者123 更新时间:2023-12-02 08:21:06 25 4
gpt4 key购买 nike

我正在尝试创建一个 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
}

这就是我在它发送的邮件正文中得到的内容。

Your Windows password will expire in 14 days. Please consider changing your password. - .Name - .PasswordLastSet

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

最佳答案

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

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

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

关于powershell - 将变量传递给 Send-MailMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37079400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com